home *** CD-ROM | disk | FTP | other *** search
/ New Star Software Collection / NSS_Collection.iso / 3-069 qemm 603 / 1.ima / DVMAN / APPEND-B.DEV < prev    next >
Encoding:
Text File  |  1991-10-08  |  100.1 KB  |  1,968 lines

  1. Appendix B
  2.  
  3. Using DESQview with Expanded Memory, Extended Memory, or a 386 PC
  4.  
  5. The most important resources available to DESQview are the speed of your
  6. computer and the amount and type of memory you have installed.  The faster
  7. your PC is, the more quickly DESQview (or any other program) can perform
  8. its functions.  But speed is not DESQview's most critical resource; memory
  9. is.  How much memory you have, and how that memory is configured is very
  10. important to DESQview.  The reason is that most programs written for DOS
  11. 2.x to 4.x may access only the first 1024K (one megabyte) of memory, and
  12. typically they only use the first 640K, since the other memory areas are
  13. resvered for special functions.  The maximum amount of memory that most
  14. programs and data can occupy is 640K, including DOS.
  15.  
  16. When you run a single program on your PC, 640K is the maximum size of DOS,
  17. your program, and its data.  So, on a 640K system, the size of the largest
  18. single program you can ever run inside DESQview is about 430K ~dash~
  19. because DOS takes approximately 60K and DESQview takes about 150K.
  20.  
  21. If you run multiple programs, 430K is the maximum size of all the programs
  22. you can run concurrently, including all their data.  (The term concurrently
  23. means that multiple programs are both loaded into the 0K-640K area of
  24. memory and may run simultaneously in this area.)  This amount of memory can
  25. be very limiting for many of today's DOS programs, so ways of reducing DOS
  26. and DESQview overhead are often used in order to increase the size of
  27. memory available for each program.
  28.  
  29. ~Subhead~ ExTENDed Memory
  30.  
  31.  The first 640K of memory is called conventional memory.  An 80286 or 386
  32. or i486 PC can also have many megabytes of another type of memory, called
  33. exTENDed memory.  ExTENDed memory begins at 1024K and continues from there;
  34. it is NOT located between 640K and 1024K.  A new classification of
  35. programs, using a "DOS extender" can actually run in exTENDed memory and
  36. use some of the lower 640K to handle their work with DOS.  These programs
  37. are specially written to be DOS extended by the program's developer.  Lotus
  38. 1-2-3 Release 3 is an example of one such program.  Except for DOS extended
  39. programs, exTENDed memory is severely limited in utility by the fact that
  40. most existing DOS programs can't use it, either to run themselves or to
  41. store data.  
  42.  
  43. DESQview, however, is an exception ~dash~ it can run 64K of itself in the
  44. first 64K of exTENDed memory.  So, if you have an 80286 or 386 PC with
  45. exTENDed memory installed, DESQview's overhead (in conventional memory)
  46. drops by 64K to about 85K ~dash~ and the largest program you run
  47. accordingly increases by 64K to 495K.  DESQview was the first DOS program
  48. to use this area.  Other programs have now also been modified to use it as
  49. well.  The first 64K of exTENDed memory is usually called the "High Memory
  50. Area" (HMA), and may be used by only one program.
  51.  
  52. ~Subhead~ ExPANDed Memory
  53.  
  54.  In order to access more than 640K on all types of DOS computers (including
  55. 8088 and 8086), another type of memory was invented ~dash~ called exPANDed
  56. memory (EMS). It is possible to both store data and run programs in
  57. exPANDed memory, but only when the memory is configured properly and
  58. managed effectively.  DESQview can manage exPANDed memory for multiple
  59. programs, even if those programs have not been modified to understand
  60. expanded memory themselves.  It is the "control program" you need to
  61. actually make use of all the capabilities of the EMS memory technology.
  62.  
  63. ~Subhead~ 386 or i486 PCs
  64.  
  65.  On a 386 or i486 PC, you DO NOT need a special EMS memory board.  All you
  66. need is standard 386 exTENDed memory, Quarterdeck Expanded Memory Manager
  67. 386 (QEMM-386), and DESQview.  QEMM-386 converts a 386 or i486 PC's
  68. exTENDed memory into expanded memory.  DESQview acts as the "control
  69. program" to take advantage of the ability of the 386 PC's virtual 86
  70. machine architecture to emulate EMS memory.  To DESQview and QEMM-386, an
  71. 80386SX or i486 PC has the same memory management features as a 386 PC.
  72.  
  73. ~Subhead~ Determining the Largest Program Size in DESQview
  74.  
  75.  The table below shows how having EMS memory or a 386 PC, DESQview can
  76. reduce its overhead substantially ~dash~ even to zero in some cases ~dash~
  77. by loading part of itself in both exTENDed and EMS memory.  Your values may
  78. be slightly smaller or much larger depending on your use of the LOADHI
  79. programs which come with QRAM and QEMM.
  80.  
  81. ~Subhead~ About this Appendix
  82.  
  83.  Below is the table of contents for the rest of this appendix.  All of you
  84. should read the first three sections, pages 135-139.  The Expanded Memory
  85. Technology is for the more technically minded ~dash~ and can be skipped if
  86. you're not interested in the details.  Optimizing How DESQview Uses EEMS
  87. Memory and Reducing Your System's Memory aren't mandatory reading either,
  88. but you may need to take some of the steps described in these sections to
  89. get the Largest Program Size listed above.
  90.  
  91.  DESQview's power increases when you add an expanded memory board to your
  92. PC, PC-XT, or PC-AT, or when you run DESQview on a 386 PC in conjunction
  93. with Quarterdeck Expanded Memory Manager 386
  94.  
  95. ~Begin footnote~
  96.  
  97. If you use a 386 expanded memory manager other than QEMM-386 (such as the
  98. Compaq Expanded Memory Manager), you may not be able to take advantage of
  99. all of DESQview's 386 PC capabilities. 
  100.  
  101. ~End footnote~
  102.  
  103. (QEMM-386).  There are two standard types of expanded memory.  DESQview
  104. supports both:
  105.  
  106. ~Item~ Expanded memory that follows the Lotus/Intel/Microsoft Expanded
  107. Memory Specification Version 3 or Version 4.  This is usually abbreviated
  108. as EMS memory, EMS3 memory, EMS4 memory, LIM memory, or sometimes LIM-EMS
  109. memory.
  110.  
  111. ~Item~ Expanded memory that follows the AST/Quadram/Ashton-Tate Enhanced
  112. Expanded Memory Specification.  This is usually abbreviated as EEMS memory
  113. or sometimes enhanced-EMS memory.
  114.  
  115. Memory boards which were originally designed for EMS3 can have an EMS4
  116. driver written for them, but they will not gain all of the new features of
  117. EMS4 because they lack the necessary hardware to perform the advanced
  118. functions such as mapping more than 64K of memory at one time.  EEMS memory
  119. boards can become EMS4 memory boards by simply obtaining an EMS4 software
  120. driver from the manufacturer, because the extra hardware necessary for the
  121. advanced functions is built into EEMS boards.  Almost all references to
  122. EMS4 in this manual apply to EEMS as well.
  123.  
  124. The extra DESQview capabilities available to you are directly related to
  125. the amount and type of expanded memory you have.  DESQview uses either type
  126. to its fullest potential and automatically detects its presence, as long as
  127. you've loaded an expanded memory manager~dagger~ (EMM) when you booted your
  128. system.
  129.  
  130. DESQview is not compatible with expanded memory emulators on 80286 PC's
  131. which convert exTENDed memory or disk space into exPANDed memory without
  132. additional hardware.  These programs use significant amounts of memory
  133. below 640K and are not fast enough to perform effectively with DESQview.
  134.  
  135. ~Subhead~ Determining If You Have Expanded Memory
  136.  
  137.  You have expanded memory that's compatible with DESQview:
  138.  
  139. ~Item~ On a PC, PC-XT, or PC-AT, only if you've purchased an expanded
  140. memory board and installed it on your PC along with the corresponding
  141. expanded memory manager driver program.  Examples of these are: 
  142.  
  143.  ~dash~  EMS Version 3 (EMS3) boards, such as the Intel AboveBoard,
  144. BocaRAM, and Everex RAM 3000 and others which can only use 64K of expanded
  145. memory at any one time.
  146.  
  147.  ~dash~  Enhanced-EMS (EEMS) boards (which include EMS3 memory as a
  148. subset), such as the AST RAMpage, AST SixPakPremium, AST Advantage Premium,
  149. and PC Technologies RAMpartner.
  150.  
  151.  ~dash~  EMS Version 4 (EMS4) boards (which also include EMS3 memory as a
  152. subset) such as the Intel AboveBoard Plus, All Computers CHARGECARD,
  153. Computer Peripherals CPI-XMA, Everex RAM 8000, Newer Technologies
  154. Concentration, STB Rapidmeg, Teletek X-Bandit, Dakota Research ???, and any
  155. of the EEMS boards with an EMS4 driver.  These boards can access more than
  156. 64K of expanded memory at any one time.
  157.  
  158. ~Item~ On a 386 PC, only if you have installed Quarterdeck Expanded Memory
  159. Manager 386~dagger~ (QEMM-386).
  160.  
  161.  An exPANDed memory board is not the same as an exTENDed memory board.  The
  162. similarity of names makes this a confusing point.  Unless your memory board
  163. explicitly says that it's an expanded memory board that supports the EMS or
  164. EEMS standard (or you have a 386 PC and QEMM-386), you don't have expanded
  165. memory.  (See page ?qext?for information on using DESQview with exTENDed
  166. memory.)
  167.  
  168. ~Heading~ How DESQview Uses Expanded Memory
  169.  
  170.  DESQview uses expanded memory in three ways:
  171.  
  172. ~Item~ As data storage, for programs that explicitly know about and use EMS
  173. memory for data ~dash~ such as 1-2-3 Release 2 or Release 3, WordPerfect 5,
  174. Paradox, and so forth.
  175.  
  176. ~Item~ As a "swapping" area, to temporarily store programs when DESQview
  177. needs additional space to load other programs or to save "graphics
  178. screens".
  179.  
  180. ~Item~ As program memory ~dash~ which is to say, as memory that programs
  181. can run in.
  182.  
  183. Expanded memory can also be used for RAM disks, print spoolers, and disk
  184. caches.  When used for these, load these driver programs before you start
  185. up DESQview, so that all the programs you run can take advantage of their
  186. features.
  187.  
  188. ~Subhead~ Using Expanded Memory as Data Storage
  189.  
  190.  Many programs ~dash~ such as 1-2-3 Release 2 ~dash~ use exPANDed memory to
  191. make large amounts of data available quickly.  When DESQview is used on a
  192. system with expanded memory, it extends this capability by allowing several
  193. programs to use expanded memory at the same time.  DESQview ensures that
  194. each program's use of expanded memory doesn't interfere with any other
  195. program's use of it.
  196.  
  197.  For example, you could have 1-2-3 Release 2 and WordPerfect each storing
  198. data in expanded memory while running in its own window.  DESQview
  199. automatically manages the allocations of expanded memory so that each
  200. program "sees" only its own expanded memory area.
  201.  
  202. ~Subhead~ Using Expanded Memory as a "Swapping" Area
  203.  
  204.  When all the programs you want to run at the same time won't fit in
  205. memory, DESQview automatically manages memory for you by "swapping"
  206. programs in and out as you need them.  Although swapping can be done to a
  207. hard disk, a RAM disk, or expanded memory, it's fastest when done to
  208. expanded memory.  Any type of expanded memory may be used for swapping.
  209.  
  210. When you start up a program, DESQview begins by finding a place in memory
  211. for it to run.  If there's an unused area large enough, DESQview puts the
  212. program in that area.
  213.  
  214. Programs loaded in the first 640K can run concurrently, since they're
  215. running in the memory that DOS knows about and supports.  However, if
  216. there's no unused area large enough for the program to fit in, one or more
  217. of the programs already loaded are swapped out to make room ~dash~ which is
  218. to say, they're removed from memory and stored somewhere else temporarily.
  219.  
  220.  Programs that are swapped out are frozen (suspended) ~dash~ because those
  221. programs are no longer "in memory", where they must be for your PC to
  222. execute them.  When you switch back to a swapped out program, it's reloaded
  223. into memory and resumes where it left off when it was swapped out. 
  224. (Programs that can't be arbitrarily suspended ~dash~ such as communications
  225. programs ~dash~ must be nonswappable.)
  226.  
  227. The amount of time it takes to swap one program out and another program in
  228. is highly variable.  If you're swapping to a hard disk, the time depends on
  229. the size of your program and the speed of your hard disk.  Hard disk times
  230. vary enormously.  A "fast" disk may swap three or even five times faster
  231. than a "normal" disk.
  232.  
  233. Swapping to a RAM disk is faster, but still not optimal because, even
  234. though RAM disk is "memory", accessing it still incurs DOS overhead.  The
  235. fastest method is swapping to expanded memory.  It's virtually
  236. instantaneous.
  237.  
  238. ~Subhead~ Using Expanded Memory as  "Program" Memory
  239.  
  240.  Although "swapping" programs to expanded memory is nice, "running"
  241. programs in expanded memory is even better. You can run programs in
  242. expanded memory only if you have fully hardware compatible EMS4 memory,
  243. ENHANCED expanded memory (EEMS), or are using a 386 PC in conjunction with
  244. QEMM-386.
  245.  
  246. Running programs in expanded memory means that you can run more programs
  247. than would normally fit in 640K.  In fact, you can run as many programs
  248. simultaneously as will fit in your entire expanded memory, up to 32MB
  249. worth.  The size of each program is less than 640K (not counting the data a
  250. program may store in expanded memory), and the total amount of memory used
  251. for running programs can be many megabytes.
  252.  
  253. You cannot run programs in expanded memory if you have EMS3 memory.  The
  254. reason is that with EMS3 your PC can only "see" one 64K chunk of EMS memory
  255. at any one time while, with fully hardware compatible EMS4 memory, or EEMS,
  256. it can "see" enough memory to run most existing DOS programs.  It is
  257. important to note that an EMS3 board may have an EMS4 driver, but this does
  258. not allow the extra hardware features of EMS4 such as multitasking.
  259.  
  260. However, you only get capability to run programs in EMS4 memory when
  261. DESQview manages your EMS4 memory.  Note that DESQview runs off-the-shelf
  262. programs in EMS4 memory.  You don't need any special versions or have to
  263. upgrade your existing software.  The programs you now own will run in EMS4
  264. memory as they stand.
  265.  
  266.  But, this capability doesn't come without some work on your part.  To
  267. properly use EMS4 memory, you may need to "disconnect" some of your
  268. conventional memory (below 640K) and substitute EMS4 memory for it. 
  269. Although you may be reluctant to "disconnect" perfectly good memory, if you
  270. don't, you severly limit the number and size of programs you can run in
  271. EMS4 memory.  In the worst case, you can't run any programs in EMS4 memory
  272. ~dash~ see Optimizing How DESQview Uses EMS4 Memory on page 149.  Note that
  273. "disconnecting" conventional memory usually just involves changing switch
  274. settings, and doesn't require you to modify you hardware.  Also, there is
  275. no need to "disconnect" memory on a 386 PC.
  276.  
  277. ~Heading~ Installing Expanded Memory
  278.  
  279.  It's not necessary to do anything special to make expanded memory work
  280. with DESQview.  Each time you start up DESQview, it checks for the presence
  281. of expanded memory and automatically uses it if it's available.  So, it
  282. doesn't matter to DESQview whether you install DESQview first, expanded
  283. memory first, or both at the same time.
  284.  
  285. ~Subhead~ If You Have a PC, PC-XT, or PC-AT
  286.  
  287.  When you install an expanded memory board on a PC, PC-XT, or PC- AT, be
  288. sure to follow the board manufacturer's instructions carefully.  You must
  289. perform at least these four basic steps:
  290.  
  291. ~Step~ Verify that the default factory switch settings are correct for your
  292. hardware configuration and, if they're not, make them correct.
  293.  
  294. ~Step~ Open up your PC chassis and install the board in an empty slot.
  295.  
  296. ~Step~ Install the expanded memory manager (EMM) for the board on your boot
  297. disk and in your CONFIG.SYS file.
  298.  
  299. ~Step~ Reboot your system to load this expanded memory manager.
  300.  
  301. Although it's sufficient to follow these steps, there are additional steps
  302. we recommend ~dash~ but that aren't mandatory ~dash~  depending on the type
  303. of expanded memory board you've installed:
  304.  
  305. ~Item~ EMS3 board.  We recommend that you use part of your EMS3 board for
  306. swapping programs and "graphics screens".  This occurs automatically unless
  307. you've run the Setup program and specified an explicit SWAP drive to use
  308. (see Appendix A).  Also, you can reduce DESQview's overhead if you have 64K
  309. of exTENDed memory (see page ?qext?) which may require you to change your
  310. EMS board's settings if you don't already have exTENDed memory.  There's no
  311. way to improve how DESQview uses EMS3 memory or to use EMS memory to run
  312. programs.  This is a fundamental limitation of the EMS3 hardware design.
  313.  
  314. ~Item~ EMS4 or EEMS board.  We strongly recommend that you optimize the use
  315. of EMS4 or enhanced expanded memory by taking the following two steps:
  316.  
  317.  ~dash~  Use as much of the unused area between 640K and 1024K as can be
  318. controlled by your board.  This means that you should be sure you are using
  319. DV.COM (which is a copy of XDV.COM) in place of DV.EXE (the INSTALL
  320. procedure does this for you), and possibly using QRAM from Quarterdeck (a
  321. separate product) to move resident programs and parts of DOS into the
  322. unused areas.
  323.  
  324.  ~dash~  "Disconnect" part of your conventional memory (below 640K) and let
  325. your EMS4 board provide it instead.  See Reducing Your System's Memory on
  326. page 156 of this appendix for the steps involved.
  327.  
  328.  The remaining sections of this appendix, starting on page 140, discuss how
  329. expanded memory works and why it's advantageous to follow these steps.
  330.  
  331. ~Subhead~ If you Have a 386, 386SX, or i486 PC
  332.  
  333.  If you have a 386, 386SX, or i486 PC (they're all the same to DESQview and
  334. QEMM-386), there's no need to install a special expanded memory board
  335. because, on a 386 PC, standard 386 exTENDed memory can act like expanded
  336. memory.  There are only three things you must do:
  337.  
  338. ~Step~ Install Quarterdeck Expanded Memory Manager 386
  339.  
  340. ~Begin footnote~
  341.  
  342. Or, install the expanded memory manager supplied with your 386 PC, if it's
  343. compatible ~dash~ such as the Compaq Expanded Memory Manager (CEMM)
  344. supplied with the Compaq Deskkpro 386.  However, if you don't use QEMM-386,
  345. you may not be able to take advantage of all of DESQview's 386 PC
  346. capabilities.
  347.  
  348. ~End footnote~
  349.  
  350. (QEMM-386) on your hard disk and in your CONFIG.SYS file.
  351.  
  352. ~Step~ Reboot your system to load this expanded memory manager.
  353.  
  354. ~Step~  Use as much of the unused area between 640K and 1024K as possible. 
  355. This means that you should be sure you are using DV.COM (which is a copy of
  356. XDV.COM) in place of DV.EXE (the INSTALL procedure does this for you), and
  357. possibly using LOADHI from Quarterdeck (which comes with QEMM-386) to move
  358. resident programs and parts of DOS into the unused areas.
  359.  
  360.  If you have a 386 PC, but don't have an expanded memory manager (EMM),
  361. contact your dealer or Quarterdeck for information on QEMM-386.
  362.  
  363. ~Subhead~ Verifying That  Expanded Memory is Correctly Installed
  364.  
  365.  Once you've installed your expanded memory board (except on a 386 PC),
  366. installed the expanded memory manager, and rebooted your system, it's
  367. useful to be able to determine whether you've installed everything
  368. correctly:
  369.  
  370. ~Item~ When you reboot, watch the screen for information about expanded
  371. memory ~dash~ generally in the form of a count-up as expanded memory is
  372. tested.  If no expanded memory information appears, you've done something
  373. wrong.
  374.  
  375. ~Item~ If you're familiar with DESQview, run the Memory Status program (see
  376. pages 160-161).  If a nonzero number appears under Total Expanded Memory,
  377. DESQview has recognized that you have expanded memory installed.  If the
  378. number is zero, you've done something wrong.
  379.  
  380. If DESQview won't start up, you probably have a memory conflict in the
  381. 640K to 1024K area.  See Appendix E, Troubleshooting for hints on how
  382. pinpoint the conflicting memory area and get DV.COM (XDV.COM) to avoid it.
  383.  
  384. Something else you might want to do, for your programs that store data in
  385. expanded memory, is to limit the amount of expanded memory the program can
  386. use ~dash~ by entering a value for Maximum Expanded Memory Size (in K) on
  387. the Change a Program menu for the program (see page 115).  This is
  388. especially important for programs that immediately seize all of expanded
  389. memory when they start up.
  390.  
  391.  REMEMBER:  An expanded memory manager (EMM) must be loaded by your
  392. CONFIG.SYS file when you boot your system before DESQview or any other
  393. program can use expanded memory.
  394.  
  395. ~Heading~ The Expanded Memory Technology
  396.  
  397.  This section offers a brief discussion, for the more technically minded,
  398. of how expanded memory works and of how DESQview takes advantage of the
  399. EMS4 memory technology to run multiple, large programs concurrently.
  400.  
  401. ~Subhead~ PC Memory:  an Overview
  402.  
  403.  Three types of memory can be installed on a PC:
  404.  
  405. ~Item~ Conventional memory is memory between 0K and 1024K (1MB).  It's the
  406. area of memory in which all programs must run ~dash~ because DOS 2.x/4.x
  407. only recognizes and supports programs loaded into this area.  Even DOS
  408. extended programs need to use some portion of conventional memory.
  409.  
  410. ~Item~ ExTENDed memory is memory above 1024K (1 megabyte) on a PC-AT or 386
  411. PC.  (You can't install it on a PC or PC-XT.)  Unlike conventional memory,
  412. exTENDed memory has an important limitation: exTENDed memory cannot be used
  413. for running most existing programs under DOS 2.x/4.x.  It can only be used
  414. for RAM disks, print spoolers, and disk caches, or DOS extended programs
  415. ~dash~ with one exception.  DESQview can run 64K of itself in exTENDed
  416. memory (see page ?qext?).
  417.  
  418. ~Item~ ExPANDed memory is a special kind of extra memory.  Unlike
  419. conventional and exTENDed memory, expanded memory doesn't occupy a specific
  420. range of fixed addresses.  Instead, any area of expanded memory can be
  421. instantly "substituted for" (or mapped into) a like-sized area of
  422. conventional memory.  There are two types of expanded memory.  EMS3 memory
  423. is used to store data and swap.  EMS4 (or EEMS) memory is used, in
  424. addition, to run programs.
  425.  
  426.  The following diagrams illustrate the basic configurations of memory that
  427. are possible,  ExTENDed and expanded memory are optional.
  428.  
  429.  These areas represent conventional memory ~dash~ the memory between 0K and
  430. 1024K (1MB).  The first 640K is used to run programs, and the remaining
  431. 384K is reserved for the system.
  432.  
  433.  These areas represent exTENDed memory ~dash~ the memory starting at 1MB
  434. and continuing to the end of the available address range.  The stacking of
  435. exTENDed memory on top of conventional memory illustrates that exTENDed
  436. memory extends the 1MB of conventional memory.ExTENDed memory cannot be
  437. used for running most existing programs under DOS 2.x/4.x.  It can only be
  438. used for RAM disks, print spoolers, and disk caches, or DOS extended
  439. programs ~dash~ with one exception.  DESQview can run 64K of itself in
  440. exTENDed memory (see page ?qext?).
  441.  
  442. These areas represent exPANDed memory ~dash~ a special kind of extra
  443. memory.  On a PC, PC-XT, or PC-AT, expanded memory and exTENDed memory are
  444. physically different entities ~dash~ each requiring its own, special
  445. hardware memory board.
  446.  
  447. ~Begin footnote~
  448.  
  449. Although expanded memory boards can be configured to use part of their
  450. memory as exTENDed memory, exTENDed memory boards cannot be used as
  451. expanded memory ~dash~ except on a 386 PC.
  452.  
  453. ~End footnote~
  454.  
  455. This is illustrated by the fact that expanded memory is a separate block
  456. of memory that sits beside conventional and exTENDed memory.  On a 386 PC,
  457. however, exTENDed memory can act like expanded memory ~dash~ by loading
  458. Quarterdeck Expanded Memory Manager 386 (QEMM-386) when you boot your
  459. system.
  460.  
  461. ~Subhead~ How Conventional Memory Works
  462.  
  463.  Conventional memory is memory between 0K and 1024K (1MB).  It's the area
  464. of memory in which all programs must run ~dash~ because DOS 2.x/4.x only
  465. recognizes and supports programs loaded into this area.  Conventional
  466. memory is divided into three areas:
  467.  
  468. ~Item~ Motherboard memory is the basic memory that comes with every PC. 
  469. It's called "motherboard memory" because it's located on your computer's
  470. basic system board ~dash~ the "motherboard".  It varies from 64K to 640K,
  471. depending on your PC.
  472.  
  473. ~Item~ Add-on memory is used to extend the motherboard memory when it's
  474. less than 640K.  For example, if there's 256K on your motherboard, you
  475. could "add on" up to 384K of additional memory.  It's also called "add-on"
  476. memory because you must "add on" a physical memory board that contains this
  477. memory.
  478.  
  479. ~Item~ Reserved memory is the memory between 640K and 1024K (1MB).  It's
  480. called "reserved memory" because it's reserved for use by the system ~dash~
  481. for the ROM BIOS and hardware devices, such as display adapter boards,
  482. network boards, and hard disk controllers.  Unused addresses in this region
  483. have no physical memory in them.
  484.  
  485. The motherboard and add-on memories must form one contiguous block,
  486. starting at 0K and extending to a maximum of 640K.  The reserved memory,
  487. however, is usually a collection of disjoint areas ~dash~ depending on your
  488. hardware configuration.
  489.  
  490. The following diagram illustrates how conventional memory is divided up. 
  491. The use of the first 640K is the same for all PCs.  The allocation of
  492. memory in the reserved memory area, however, varies according to whether
  493. you have a PC, PC-XT, PC-AT  or 386 PC (see the diagrams on the next page). 
  494. The address values are in hexadecimal on one side of the chart, and in
  495. decimal on the other.
  496.  
  497. Graphic not shown
  498.  
  499. ~Subhead~ Why There's a 640K Limit
  500.  
  501.  When the IBM PC was first introduced in 1981, the standard "personal
  502. computer" was based on an 8080 processor, which could address a maximum of
  503. 64K of memory.  The IBM PC, however, was built around the 8086/8088
  504. processor, which could address up to 1024K (1MB) of memory.
  505.  
  506. Initially, the IBM PC's designers split the 1024 in half ~dash~ 512K for
  507. programs and 512K for the ROM BIOS and hardware devices.  Then, a short
  508. time later, they changed their minds and "unreserved" the first 128K of the
  509. second 512K area.  That's where the 640K limit came from: 640K=512K + 128K. 
  510. High resolution graphics adapters such as the EGA or VGA have their own
  511. memory at 640K, this keeps programs which need graphics from using any
  512. contiguous addresses larger than 640K.
  513.  
  514. ~Subhead~ How Reserved Memory is Allocated
  515.  
  516.  Reserved memory has three main uses:
  517.  
  518. ~Item~ As the area for the ROM BIOS ~dash~ that part of DOS that's built
  519. into every PC and manages the hardware basics, such as reading the
  520. keyboard, driving the printer, and displaying information on the screen.
  521.  
  522. ~Item~ As the"screen buffer" (or "video display RAM") ~dash~ the area of
  523. memory that stores the information that appears on the video display
  524. monitor.
  525.  
  526. ~Item~ As the area for hardware-specific ROMs ~dash~ for example, the ROM
  527. for the enhanced graphics (EGA) display adapter and the hard
  528. diskcontroller.
  529.  
  530.  The diagrams on the next page illustrate the way that reserved memory is
  531. usually configured.  The LIM-Data Area is the 64K area where most programs
  532. can "see" expanded memory.  Unused areas are used by DESQview to run
  533. programs and parts of itself; the DV.COM program places parts of DESQview
  534. into these unused areas.
  535.  
  536. ~Subhead~ How ExTENDed Memory works
  537.  
  538.  ExTENDed memory is memory starting at 1024K (1MB).  It's only available on
  539. 286 and 386 PCs.
  540.  
  541. Unlike conventional memory, exTENDed memory has an important limitation:
  542. exTENDed memory cannot be used for running most existing programs under DOS
  543. 2.x/4.x.  It can only be used for RAM disks, print spoolers, and disk
  544. caches, or DOS extended programs ~dash~ with one exception.  DESQview can
  545. run 64K of itself in exTENDed memory (see page ?qext?).
  546.  
  547. ~Subhead~ How Expanded (EMS) Memory Works
  548.  
  549.  It's not necessary to understand how expanded memory works to use it,
  550. since DESQview handles all the details for you automatically.  There are,
  551. however, "right" and "not so right" ways to use it.  So, a basic
  552. understanding of the concepts and processes involved can help you be sure
  553. that you're getting the most out of your expanded memory board.
  554.  
  555.  Expanded memory is a special kind or extra or "shadow" memory.  To have
  556. expanded memory on your system, you must purchase and install a separate
  557. (expanded) memory board ~dash~ except on a 386 PC.  On a 386 PC, standard
  558. 386 exTENDed memory can act like expanded memory (by loading QEMM-386).
  559.  
  560. There are two types of expanded memory.  Conceptually, both work the same. 
  561. The difference is in their limitations (which are imposed by the hardware
  562. design):
  563.  
  564. ~Item~ EMS3 memory is only used to store data and to swap programs and
  565. "graphics sceens".  Only 64K of expanded can be "seen" at one time.
  566.  
  567. ~Item~ EMS4 (or EEMS) memory is also used to store data and to swap but, in
  568. addition, it can be used to run programs because more than 64K of memory
  569. can be "seen" at one time.
  570.  
  571. The fundamental concept to understand about expanded memory is that DOS
  572. doesn't know it exists.  As far as DOS is concerned, there's only 1MB of
  573. memory addresses, 0K to 1024K, but DOS does not know whether any memory is
  574. in all of these addresses.
  575.  
  576. Given this, the way expanded memory works is basically simple.  Any 64K
  577. chunk (which is a group of four 16K chunks) of expanded memory can be
  578. "mapped" into an unused 64K area of reserved memory.  The key concept is
  579. mapping.  Mapping is a technical term.  What it means is that there's
  580. hardware on the expanded memory board that "fools" the PC into thinking
  581. that a 64K area of expanded memory is really in the unused 64K area of
  582. reserved memory.
  583.  
  584. This is very much like looking at the ocean through the porthole of a ship. 
  585. You can't see the whole ocean through the porthole, only the area directly
  586. outside.  If you turn the ship, then you can see a different area of the
  587. ocean.  The whole ocean is always there, you are just looking at a certain
  588. piece of it at one time.
  589.  
  590. With expanded memory, if your program tells the expanded memory board to
  591. "map" some 64K chunk of expanded memory into the 64K area of reserved
  592. memory that starts at 784K then, when the program reads or stores data in
  593. the 784K to 848K area, it would, instead, actually be reading or storing in
  594. a 64K chunk of expanded memory ~dash~ as the following diagram illustrates.
  595.  
  596. Effectively, the mapped 64K area of reserved memory is a porthole onto a
  597. larger area of expanded memory.  It's just that, when you look through the
  598. porthole you can only "see" things that are exactly that size.  If you want
  599. to see different "view" through the porthole you have to tell the window to
  600. "shift views" (like turning the ship).  Then, you see only the new view you
  601. selected.
  602.  
  603. And that's exactly how expanded memory works.  A program that's been
  604. modified to know about expanded memory can access up to megabytes of data
  605. by looking at it in 64K chunks.  The program might start by telling the
  606. expanded memory manager (the program that controls the "view") that it
  607. wants to use (view) a particular 64K area of expanded memory.  Then it
  608. fills this area with data.  When this 64K area is full, it then tells the
  609. expanded memory manager that it wants to use another 64K area.  The
  610. information in the first 64K area is still there.  It just can't be
  611. accessed until it is placed back into the viewing area.
  612.  
  613. By switching among 64K areas of expanded memory, a program can thus access
  614. up to many megabytes of memory.  Note that no information is moved.  All
  615. the program's data is really stored in expanded memory and available at
  616. normal memory speeds.  It's just that only one 64K area can be accessed at
  617. a time.
  618.  
  619. ~Subhead~ How EMS4 and Enhanced Expanded Memory (EEMS) Works
  620.  
  621.  The deficiency of EMS3 memory is that most programs are larger than 64K
  622. and thus can't run in expanded memory (since 64K is the maximum area "seen"
  623. at one time).  They can only use it for data storage.  Two methods have
  624. been developed to remove this restriction.  The first was the
  625. AST/Quardram/Ashton-Tate Enhanced Expanded Memory Specification (EEMS
  626. memory or enhanced-EMS memory).  The second was EMS Version 4.  Both EEMS
  627. and EMS4 are supersets of EMS memory. This means that they do everything
  628. that EMS3 memory does, in a 100% compatible way, and more besides.  The
  629. major difference between EEMS and EMS4 is how the software driver is
  630. accessed, and DESQview can determine the correct method automatically. 
  631. Each of these newer specifications can:
  632.  
  633. ~Item~ Map an area larger than 64K (in fact any area from 16K to 1MB in
  634. size).  This increases the amount of expanded memory which can be "seen" at
  635. one time.
  636.  
  637. ~Item~ Map several non-adjacent areas.  (An EMS3 board can only map to a
  638. single 64K area of reserved memory.)
  639.  
  640. ~Item~ Map areas of memory below 640K as well as above 640K. This is where
  641. programs run, so if enough expanded memory can be mapped below 640K a
  642. program can actually be run from expanded memory.
  643.  
  644. Taken together, these "enhanced" expanded memory capabilities make it
  645. possible to run not just one, but multiple programs concurrently in
  646. expanded memory.  The process of multitasking (letting several programs run
  647. simultaneously by giving each a "slice" of time in turn) is now viable
  648. because context-switching (the process of allocating these time slices) can
  649. be done by simply changing the piece of expanded memory which is "seen"
  650. below 640K.
  651.  
  652.  Still, to take advantage of these "enhanced" capabilities, you might think
  653. that existing programs would have to be modified to take advantage of EMS4
  654. (or EEMS) memory.  DESQview, however, eliminates this need.  It conceals
  655. all the EMS4 mechanisms from the program and makes it appear (to the
  656. program) that it's running by itself in the PC's conventional (0K-640K)
  657. memory area.  The program doesn't know it is running from expanded memory.
  658.  
  659. ~Subhead~ The Capabilities of a 386 PC
  660.  
  661.  When you have a 386 PC, the need for a separate exPANDed memory board
  662. disappears because, on a 386 PC, standard 386 exTENDed memory can act like
  663. exPANDed memory, and almost all of the conventional memory becomes exPANDed
  664. memory as well. This is possible because the 80386 processor chip already
  665. has the necessary mapping capability built in. (In contrast, none of the
  666. conventional or exTENDed memory on a PC, PC-XT, or PC-AT can be mapped.)
  667.  
  668. ~Subhead~ How DESQview Works WithExpanded Memory
  669.  
  670.  When you load DESQview, it examines your memory configuration and loads
  671. itself to take best advantage of your specific configuration:
  672.  
  673. ~Item~ PC, PC-XT, or PC-AT
  674.  
  675.  ~dash~  If you've installed an EMS3 memory board and also loaded the
  676. exPANDed memory manager (EMM) for the board, DESQview recognizes and uses
  677. EMS memory.
  678.  
  679.  ~dash~  If you've installed an EMS4 or EEMS memory board and also loaded
  680. the exPANDed memory manager (EMM) for the board, DESQview recognizes and
  681. uses either EMS4 or EEMS memory.
  682.  
  683. ~Item~ 386 PC 
  684.  
  685.  ~dash~  If you've loaded QEMM-386,  which makes standard exTENDed memory
  686. act like EMS4 exPANDed memory, DESQview recognizes and uses it. DESQview
  687. also activates its special 386 features such as screen virtualization and
  688. program protection, thus becoming DESQview 386.
  689.  
  690. ~Item~  If you have only EMS3 memory on your system:
  691.  
  692.  ~dash~  DESQview allows multiple programs that store data in EMS memory to
  693. share the Page Frame simultaneously ~dash~ by monitoring program requests
  694. to the exPANDed memory manager and sorting them all out so that each
  695. program thinks it's the only program using exPANDed memory.
  696.  
  697.  ~dash~  DESQview swaps to exPANDed memory when it needs additional space
  698. to load other programs or to save graphics screens.
  699.  
  700. ~Item~ If you have EEMS or fully hardware capable EMS4 memory on your
  701. system:
  702.  
  703.  ~dash~  DESQview additionally uses the enhanced features available to run
  704. multiple programs concurrently. 
  705.  
  706. When you start up DESQview, DESQview first examines your memory and figures
  707. out if the area immediately above 640K is available. (It generally will be
  708. when you have a monochrome or CGA display adapter board installed.)  If
  709. memory is available, DESQview uses it to enlarge the 640k contiguous area
  710. that DOS uses for running programs.
  711.  
  712. DESQview then examines the memory above your "screen buffer" and figures
  713. out if there are any other unused areas available in high memory
  714. (640K-1024K). If there are additional mappable memory areas, it puts part
  715. of itself in these areas (if you've started up DESQview using DV.COM). This
  716. frees up additional memory below 640K for running programs. (DESQview may
  717. also run small programs in these areas, in some cases.)
  718.  
  719. The net result is that DESQview frees up the largest contiguous area below
  720. 640K it can find for running programs. DESQview examines the area between
  721. 0K and 640K to see if it is under the control of an exPANDed memory
  722. manager. If it is, then the capabilities of running programs in the
  723. exPANDed memory areas below 640K are enabled. The size of this area is the
  724. "Largest Available Expanded Memory" number in the Memory Status display.
  725.  
  726. ~Subhead~ How DESQview Multitasks Your Programs in ExPANDed Memory
  727.  
  728.  Assuming the optimal configuration for any PC ~dash~ where the most memory
  729. possible below 1024K can be mapped ~dash~ DESQview can switch application
  730. programs in and out of conventional memory to run several large programs,
  731. even if their memory requirements, when added together, total more than
  732. 640K. Programs are not really running concurrently; DESQview is switching
  733. between them at speeds measuring in milliseconds. How this works is by
  734. tricking DOS into thinking each program is actually running in memory below
  735. 640, when really it is being mapped into the lower 640K from different
  736. areas of exPANDed memory. This tremendous enhancement in memory management
  737. is made possible by the capability to map, or substitute, one memory
  738. address for another very quickly.
  739.  
  740. For instance, when you start Program A as the first window, all processing
  741. is done as if it is the only program in memory and is running in
  742. conventional memory; it is. Then, when you start another program, Program
  743. B, it is put into exPANDed memory, however DESQview, by sleight-of-hand
  744. known as bank-switching, makes it look like it's running in the lower 640K.
  745. What bank-switching does is to substitute a "pseudo-address" for the
  746. program's real memory address. (In a moment, we'll look at how DESQview, by
  747. using the features of your memory card, actually does this.) But this can
  748. only happen if that lower 640K is mappable. On a 386 with QEMM-386 loaded,
  749. it always is. On other machines, it must be made available by disabling the
  750. conventional memory and allowing the memory card to backfill that memory
  751. with exPANDed memory.
  752.  
  753.  The advantage ExPANDed memory has over conventional memory is that the
  754. hardware supports mapping registers. Mapping registers hold specific memory
  755. addresses which are placemarks for particular information your application
  756. programs want at run time. Once the data are so mapped, DESQview ~dash~ and
  757. thus your programs ~dash~ know where to find them.
  758.  
  759. DESQview takes control of the memory mapping, tracking where it puts
  760. information for each program. In effect, then, each program running in a
  761. DESQview window has its own map. When the time slice switches from Program
  762. A to Program B, DESQview looks at the area of memory where Program B's
  763. information is stored, leaving program A's information where it was.
  764. DESQview remembers where the information for program A is mapped so that
  765. the next time information is needed for Program A, DESQview can find it
  766. immediately.
  767.  
  768. Instantly, DESQview "shows" what it finds in program B's area to the memory
  769. below 640K-the conventional program area. How it does this is to
  770. substitute, or bank-switch one memory address for another.  The program's
  771. real address may be in exPANDed memory, but its pseudo-address (where
  772. DESQview shows it to DOS) is in conventional memory-below 640K: it is
  773. mapped into conventional memory. Neither DOS nor the program know that the
  774. information comes from exPANDed memory. 
  775.  
  776.  DESQview rapidly switches back and forth between each program's assigned
  777. exPANDed memory area each time that program is due a time slice. This
  778. movement is managed completely and transparently by DESQview. The only time
  779. you may be aware of it is when you see a minute hesitation in program
  780. operation, for instance, a scrolling screen display, as DESQview gives
  781. another window its time slice according to how you have set the ratio in
  782. Setup or Tune Performance. DESQview knows the program's information is in
  783. exPANDed memory, but the program does not. The program expects the
  784. information below 640K and as far as it knows, it gets it.
  785.  
  786.  The way programs execute their tasks for you is to store and retrieve
  787. information in memory addresses. Each piece of information is assigned an
  788. address and when a program asks for the data at a particular address, the
  789. memory card responds with the requested information. What DESQview, in
  790. combination with an exPANDed memory card and a memory manager really does,
  791. then, is to reassign, or "remap" the addresses to which the programs refer.
  792. DESQview can move between mapped addresses at normal memory speeds and can
  793. be pointing at information required for any number of programs ~dash~ not
  794. at the same time, but each in turn.
  795.  
  796. The previous paragraphs describe how a normal DOS program, which only knows
  797. about memory below 640K, is handled. DESQview also knows about programs
  798. which have been written to use EMS. If the program itself is one which
  799. knows how to access exPANDed memory, what it does normally is to store data
  800. in exPANDed memory using the Page Frame. A Page Frame is a 64K block of
  801. memory whose address is assigned by the memory manager. The page frame is
  802. the program's "window" into exPANDed memory and is accessed at the memory
  803. address assigned by the memory manager. 
  804.  
  805. All programs which require a page frame use the same page frame inside of
  806. DESQview, in turn. (Outside DESQview all programs requiring a page frame
  807. also all use the same one ~dash~ the address of the page frame remains
  808. constant, unless you change it via the memory management software.) If the
  809. program has information stored in the page frame, DESQview saves the
  810. information when the program's time slice runs out and restores it the next
  811. time its time slice comes up. The program pages in and out of EMS as it
  812. would normally ~dash~ through the page frame ~dash~ to read and write its
  813. data. DESQview manages the program itself much like any other program, with
  814. the exception of altering how much exPANDed memory is available if the
  815. "Maximum Expanded Memory Size (in K)" is set in the Change a Program menu,
  816. and additionally saves and restores any mapping the EMS-aware program may
  817. do on its own.
  818.  
  819. The whole point of disabling memory below 640 (on a PC or AT) and
  820. backfilling it in with exPANDed memory is so that MORE than 64K (which is
  821. the maximum a page frame can handle) can be mapped at a time. DESQview can
  822. make a significantly larger segment of memory visible below 640K where it
  823. can be used to run a program. Using DESQview memory management, the whole
  824. program is mapped at once. The important concept is that mapping is the
  825. process that makes it appear that a program residing in exPANDed memory is
  826. running below 640K. When that feat has been accomplished, DESQview can
  827. change the mapping very quickly between programs: the multitasking effect.
  828.  
  829.  Programs, then actually run in exPANDed memory, when their information can
  830. be addressed below 640K. What happens is, as each window comes up for its
  831. time-slice, the program is visible to DOS as if it were stored in the
  832. memory area below 640 ~dash~ and runs in exPANDed memory with a
  833. conventional memory address. When your system is optimally configured,
  834. DESQview can then run multiple programs, whose combined memory requirement
  835. total more than 640K, optimally, storing the programs in exPANDed memory
  836. and addressing them in conventional memory.
  837.  
  838. ~Heading~ Optimizing How DESQview uses EMS4 or EEMS Memory
  839.  
  840.  The amount of power you get from your EMS4 or EEMS board depends on how
  841. you configure you computer's memory. Whether you choose the best or worst
  842. memory configuration, you can always have multiple programs active at the
  843. same time. Your memory configuration determines how many of these active
  844. programs are also concurrent ~dash~ that is, how many of these programs are
  845. both loaded into memory and simultaneously able to process information in
  846. foreground or background:
  847.  
  848. ~Item~ If you install your EMS4 or EEMS board without making any changes to
  849. your memory configuration, you're only guaranteed to be able to run
  850. concurrently the number of programs that, collectively, fit in 535K
  851.  
  852. ~Begin footnote~
  853.  
  854. The 535K value applies to a PC-AT or 386 PC with an EGA or VGA display
  855. adapter.  With a monochrome or hercules display adapter, you get 580K. With
  856. a CGA display adapter, you get 610K. See technical notes at the end of this
  857. appendix.
  858.  
  859. ~End footnote~
  860.  
  861.  or less on a 640K system. (535K is called the size of the "first"
  862. program.)
  863.  
  864. ~Item~ If you run one large program that takes most of the 535K3 
  865. available, you may or may not be able to run other programs concurrently,
  866. depending on whether you can disconnect motherboard memory below 640K on
  867. your particular PC.
  868.  
  869. ~Item~ If you are able to run "other" programs, each of them will have the
  870. same maximum size ~dash~ which is dependent on how much motherboard memory
  871. you've disconnected.  This maximum size can vary from 0K to 528K3,  and is
  872. called the size of the "other" program.
  873.  
  874. If you modify your memory configuration to be the best possible for your
  875. overall hardware configuration, you are guaranteed to be able to run
  876. concurrently:
  877.  
  878. ~Item~ In the worst case (on a system with an EGA and whose motherboard
  879. memory has been reduced to 256K), one 535K3  program and multiple 384K3
  880. programs.
  881.  
  882. ~Item~ In the best case (on a system with a CGA and whose motherboard
  883. memory has been reduced to 128K or less), one 610K3 program and multiple
  884. 608K3 programs.
  885.  
  886. Therefore, we strongly recommend that you optimize the use of exPANDed
  887. memory by disconnecting part of your conventional memory (below 640K) and
  888. letting your EMS4 or EEMS board provide it instead. You also must use
  889. DV.COM.
  890.  
  891. IMPORTANT: The memory values (535K
  892.  
  893. ~Begin footnote~
  894.  
  895. The 535K value applies to a PC-AT or 386 PC with an EGA or VGA display
  896. adapter.  With a monochrome or Hercules display adapter,  you get 580K. 
  897. With a CGA display adapter, you get 610K. See technical notes at the end of
  898. this appendix.
  899.  
  900. ~End footnote~
  901.  
  902. and so forth) used here and elsewhere in this appendix are based on the
  903. hardware configuration described in note 3 on page 177. These values may
  904. not be correct for your system. In fact, if you have a monochrome,
  905. Hercules, or color/graphics (CGA) display adapter, your values will be
  906. larger than those described. Be sure to read note 3 carefully, and also
  907. consult the tables on pages 173-174 and the other notes in the Technical
  908. Notes section on page 177. These values will definitely be incorrect if you
  909. don't use DV.COM or if you load any drivers (except the exPANDed memory
  910. manager), or any memory-resident programs when you boot or before you start
  911. up DESQview.
  912.  
  913. ~Subhead~ An Overview
  914.  
  915.  Three factors affect how optimally your system is configured for using
  916. exPANDed memory:
  917.  
  918. ~Item~ What brand and model of PC your have.
  919.  
  920. ~Item~ What type of display adapter board (monitor) you have.
  921.  
  922. ~Item~ If you're not running a 386 PC, how much memory you have installed
  923. below 640K.
  924.  
  925. Based on these considerations, the optimal configuration is 64K IBM PC-XT
  926. or a 386 PC with a color/graphics (CGA) display adapter. However, this does
  927. you little good if you don't have this configuration. As a practical
  928. matter, optimizaton is confined to modifying the amount of memory installed
  929. below 640K.
  930.  
  931. As noted above, if you don't make any changes to your memory configuration,
  932. you're always able to run concurrently any number of programs that,
  933. collectively, fit in 535K~dagger~ or less. Only when you run a large
  934. program, or otherwise fill the 535K3, does your memory configuration make
  935. any difference.
  936.  
  937. If you have a PC or PC-AT for which it's impossible to disconnect any
  938. memory below 640K, no programs can run in exPANDed memory.  The size of the
  939. programs that can run in exPANDed memory is directly related to the amount
  940. of memory below 640K that's been disconnected and supplied by your EMS4 or
  941. EEMS board instead. The purpose of disconnecting memory is to open up a
  942. large "porthole" below 640K into the exPANDed memory board. The larger the
  943. "porthole" below 640K, the more memory available to run a program in the
  944. exPANDed memory.
  945.  
  946. The goal of optimization is to maximize the size of the "other" programs
  947. you run, after you fill the first 535K3. (Each of these "other" programs
  948. has the same maximum size.) The two primary factors that determine this
  949. maximum size are the display adapter board you're using and the amount of
  950. memory below 640K you've disconnected and let your EMS4 or EEMS board
  951. provide instead.
  952.  
  953. ~Subhead~ How the Brand and Model of Your PC Affect Optimization
  954.  
  955.  The brand and model of your PC affect how much you can optimize your
  956. system. Although all PCs have the same basic structure, hardware details
  957. differ. For optimization, you need to know the minimum amount of
  958. motherboard memory your PC can have. This sets the limit for how much
  959. memory you can disconnect, because you usually can't disconnect all
  960. motherboard memory.
  961.  
  962. Most IBM and Compaq machines can have a minimum motherboard memory of 256K.
  963. On Microchannel Architecture PS/2 computers such as the PS/2 Model 50 or
  964. 60, all of the motherboard memory can be disabled and filled in with
  965. exPANDed memory automatically when using QEMM-50/60, another product of
  966. Quarterdeck. If you have another brand or model of PC, you must consult the
  967. technical manual for that PC (or your dealer or the PC's manufacturer) to
  968. determine its minimum motherboard memory configuration.
  969.  
  970. ~Subhead~ How Your Display Adapter Board Affects Optimization
  971.  
  972.  The type of display adapter board installed on your PC also affects how
  973. much you can optimize your system ~dash~ because each different type of
  974. display adapter board uses a different amount of memory in the 384K of high
  975. memory between 640K and 1024K. DESQview will use whatever high memory
  976. addresses the display adapter doesn't use to expand the area in which you
  977. can run programs.
  978.  
  979. The amount of high memory that DESQview can use to run programs is affected
  980. by the type of display adapter board you have:
  981.  
  982. ~Item~ If you have a monochrome or Hercules display adapter board, DESQview
  983. can use 64K of high memory to run programs.
  984.  
  985. ~Item~ If you have a color/graphics (CGA) display adapter board, DESQview
  986. can use 96K of high  memory to run programs.
  987.  
  988. ~Item~ If you have an enhanced graphics (EGA) or Video Graphics Array (VGA)
  989. display adapter board, there is no additional high memory available for
  990. DESQview to run programs unless you are not using any graphics.  f you are
  991. not using any programs which use graphics, then the VIDRAM program
  992. available with QRAM, QEMM-50/60, and QEMM-386 can recover up to 96K more
  993. memory from the video area that can then be used to run programs .
  994.  
  995. Also, DESQview may use other parts of high memory to run parts of DESQview
  996. itself ~dash~ depending on your particular hardware configuration and the
  997. capabilities of your exPANDed memory manager. For example, if you are using
  998. an EGA or VGA adapter and a color monitor, DV can place up to 32K of itself
  999. in the area reserved for the monochrome display (since that area isn't
  1000. being used). The area is only available if your exPANDed memory manager
  1001. controls it, though.
  1002.  
  1003. ~Subhead~ How Your Memory Configuration Affects Optimization
  1004.  
  1005.  As discussed in the section, The Expanded Memory Technology, a fully
  1006. hardware capable EMS4 or any EEMS board achieves its power over an EMS3
  1007. board by virtue of three additional capabilities that an EMS3 board doesn't
  1008. have:
  1009.  
  1010. ~Item~ An EMS4 or EEMS board can map any area of memory between 0K and
  1011. 1024K (1MB), whereas an EMS3 board can map only a fixed 64K area which must
  1012. be in high memory.
  1013.  
  1014. ~Item~ An EMS4 or EEMS board can map multiple, non-adjacent areas
  1015. simultaneously, whereas an EMS3 board can only map a single, 64K area.
  1016.  
  1017. ~Item~ An EMS4 or EEMS board can map any area from 16K to 1MB (in 16K
  1018. increments), whereas an EMS3 board can only map four, contiguous 16K areas.
  1019.  
  1020. However, there is a limitation to EMS4 or EEMS memory.  An EMS4 or EEMS
  1021. board can only map an area of memory for which it supplies the RAM. It
  1022. cannot map areas of memory already filled in by your PC's motherboard,
  1023. network adapter, disk controller, or by an add-on or exTENDed memory board.
  1024.  
  1025. For example, if you have 512K of conventional memory and let EMS4 or EEMS
  1026. memory provide the missing 128K (to make 640K), only a single program can
  1027. use the 512K area ~dash~ because it isn't EMS4 or EEMS memory and therefore
  1028. can't be mapped.  On the other hand, if you disconnect 256K of conventional
  1029. memory and let EMS4 or EEMS memory supply 384K (256K+128K), only 256K is
  1030. restricted for use by a single program. The size of multiple programs that
  1031. can be running simultaneously in exPANDed memory therefore increases from
  1032. 128K to 384K ~dash~ as the diagrams on the opposite page illustrate.
  1033.  
  1034. Therefore, if you have an EMS4 or EEMS board, it may be to your advantage
  1035. to disconnect part of your motherboard memory and remove any add-on boards
  1036. from your system. (There is no advantage in doing this if you have an EMS3
  1037. board or a 386 PC.)
  1038.  
  1039. The optimal configuration occurs if you disconnect all your conventional
  1040. memory. Then, all of conventional memory would be mappable and multiple
  1041. programs up to 528K3 could be run simultaneously in exPANDed memory. But,
  1042. you can't really disconnect all the memory on most PCs, PC-XTs, and PC-ATs
  1043. ~dash~ because there is no provision for a 0K system.  However, on a 386 PC
  1044. you always get the optimal configuration ~dash~ because all of standard 386
  1045. memory can be mapped, right down to 0K.
  1046.  
  1047.  You don't get the full 640K in the optimal configuration because DOS,
  1048. device drivers, memory-resident programs, and parts of DESQview still
  1049. occupy part of lower memory and can't be mapped. See note 3 on page 177 for
  1050. an explanation of where the 535K value comes from. This value may not be
  1051. correct for your system. Be sure to read note 3 carefully, and also consult
  1052. the tables on pages 173-174 and the other notes in the Technical Notes
  1053. section starting on page 177.
  1054.  
  1055.  These areas represent memory that's provided by your motherboard or by an
  1056. add-on memory board. Since it's not provided by EMS4 or EEMS memory, it
  1057. can't be mapped and can thus only be used by one program.
  1058.  
  1059.  These areas represent high memory that's not available for running
  1060. programs.
  1061.  
  1062.  These areas represent a single block of EMS4 or EEMS memory that's being
  1063. mapped into a like-sized block of conventional memory below 640K. Since
  1064. different blocks of EMS4 or EEMS memory can be mapped simultaneously into
  1065. the same block of conventional memory, different programs can be running
  1066. concurrently in the same conventional memory ~dash~ at least as far as your
  1067. PC'S processor is concerned.
  1068.  
  1069.  These areas represent blocks of EMS4 or EEMS memory that are available to
  1070. run additional programs ~dash~ or, for data storage, for use as a RAM disk,
  1071. print spooler, or disk cache, or for swapping graphics screens.
  1072.  
  1073. ~Subhead~ Choosing the Optimization That Serves You Best
  1074.  
  1075.  The best way to optimize your system is by maximizing the "other" program
  1076. size for your particular hardware configuration, since there's little you
  1077. can do to affect the maximum "first" program size (see note 4 on page 177).
  1078. The easiest way to understand your options is to examine the tables on
  1079. these pages that apply to your particular PC. The table below summarizes
  1080. the way memory is allocated for different PC configurations. The tables on
  1081. the opposite page show in more detail the effects of different memory
  1082. configurations on the "first" and "other" sizes.
  1083.  
  1084. Table not shown.
  1085.  
  1086. ~Subhead~ Table Legend
  1087.  
  1088.  The first four rows of each table list the hardware options that affect
  1089. optimization.  For the tables on the opposite page, the last two rows
  1090. indicate the resulting "maximum" program sizes for the given amount of
  1091. conventional memory. As Largest "Other" Program indicates, the smaller the
  1092. amount of conventional memory installed on your system, the greater the
  1093. maximum size of the "other" programs will be.
  1094.  
  1095.  These tables assume you've booted your system under MS-DOS 3.2, loaded an
  1096. exPANDed memory manager (or QEMM-386 on a PC), allocated 15 file buffers,
  1097. have DESQview "common" memory set to 17K, and have started up DESQview
  1098. using DV.COM (XDV).  These values will increase slightly if you run under
  1099. DOS 2.0 through 3.1. They'll decrease if you use DOS 4.x or higher, load
  1100. other device drivers or memory-resident programs (by the program's sizes)
  1101. or if you don't start up DESQview with DV.COM (by an amount that's highly
  1102. dependent on your hardware configuration ~dash~ see note 1 on page 177).
  1103.  
  1104. ~Subhead~ Table Notes
  1105.  
  1106.  1  "Mono/Hercules" means a monochrome or Hercules display adapter, "CGA" a
  1107. color/graphics display adapter, and "EGA/VGA" an enhanced graphics or Video
  1108. Graphics Array display adapter.
  1109.  
  1110.  2  "PC/XT" means a PC or PC-XT.  "AT/386" means a PC-AT or 386 PC.
  1111.  
  1112.  3  "Conventional Memory" is the amount of memory installed in the 0K-640K
  1113. area ~dash~ excluding memory supplied by an EMS4 or EEMS board.  On a 386
  1114. PC, you always get the 0K values, because all 640K can be mapped. 0K isn't
  1115. possible on most other PCs.
  1116.  
  1117.  4  Since exPANDed memory on a PC-AT or 386 PC can be used as exTENDed
  1118. memory, there's no reason to have this configuration on these machines
  1119. ~dash~ since you'll always get better "first" and "other" program sizes if
  1120. you allocate part of your exPANDed memory as exTENDed memory.
  1121.  
  1122.  5  DESQview uses 60K of exTENDed memory to load and run part of itself
  1123. ~dash~ so, you must have at least 64K of exTENDed memory installed (see
  1124. page 134).
  1125.  
  1126. ~Heading~ The Memory Status Program
  1127.  
  1128.  This appendix has discussed the concept of "first" and "other" program
  1129. sizes and how they apply to running programs on systems with particular
  1130. hardware and memory configurations. The Memory Status program
  1131.  
  1132. ~Begin footnote~
  1133.  
  1134. The Memory Status program is included on your DESQview diskette.  You will
  1135. find it on the Open Window menu.
  1136.  
  1137. ~End footnote~
  1138.  
  1139. lets you see the actual "first" and "other" sizes (and other memory
  1140. allocation information) for your system ~dash~ because Memory Status
  1141. dynamically displays the current memory usage of your running system at any
  1142. given moment.
  1143.  
  1144. When you run Memory Status, the following window appears:
  1145.  
  1146. The rows list the three memory areas of interest:
  1147.  
  1148. ~Item~ Common Memory refers to the amount of memory in DESQview's Common
  1149. Memory Buffer (see Appendix A). The values it shows are in bytes, not K. 
  1150. Generally, you can ignore these values. If Largest Available drops below
  1151. 1,000 bytes, you might want to allocate more "common memory" by running the
  1152. Setup program and add another 2K to the table.
  1153.  
  1154. ~Item~ Conventional Memory refers to the memory available to you for
  1155. running programs in the 0K-640K memory area of a PC. It consists of
  1156. motherboard memory, add-on memory, and exPANDed memory used to fill out
  1157. your system to 640K. On PCs with EMS4 or EEMS memory and 386 PCs with
  1158. QEMM-386, this may include areas of memory above 640K that DESQview uses to
  1159. run programs.
  1160.  
  1161.  Expanded Memory refers to the memory supplied by exPANDed memory boards.
  1162. It excludes exPANDed memory used to fill out the 0K-640K area and exPANDed
  1163. memory that was allocated to RAM disks, print spoolers or disk caches when
  1164. you booted your system or before you started up DESQview.
  1165.  
  1166. The columns list the current sizes of each of these memory areas:
  1167.  
  1168. ~Item~ Total Memory is the total memory available on your system for the
  1169. given memory category. This value is fixed at the time you start DESQview
  1170. and depends on your hardware and memory configuration and on the device
  1171. drivers, memory-resident programs, and disk buffers you loaded when you
  1172. booted your system or before you started DESQview.
  1173.  
  1174. ~Item~ Total Available is the total memory available at the current moment
  1175. in the given memory category. This may consist of pieces of fragmented
  1176. memory and thus doesn't necessarily reflect the contiguous memory needed to
  1177. run a program.
  1178.  
  1179. ~Item~ Largest Available is the largest area of contiguous memory available 
  1180. for a program at the current moment . You must subtract the 9K7 DESQview
  1181. overhead from the Conventional Memory and Expanded Memory values.
  1182.  
  1183. The most important numbers are:
  1184.  
  1185. ~Item~ Largest Available Conventional Memory (middle right),  which gives
  1186. the size of the largest program that can be loaded at the current moment
  1187. without swapping other programs or running the program in EMS4 or EEMS
  1188. memory (also know as the "first program" size ~dash~ when Memory Status is
  1189. run all by itself).
  1190.  
  1191. ~Item~ Largest Available Expanded Memory (bottom right), which gives the
  1192. size of the largest amount of exPANDed memory below 640K a  program that
  1193. can be run in  at the current moment. This number will always be 0K if you
  1194. don't have exPANDed memory, or if you have not backfilled conventional
  1195. memory with exPANDed memory, or if you only have an EMS3 board installed on
  1196. your system (even if it has an EMS4 driver).
  1197.  
  1198. Because these numbers tell you:
  1199.  
  1200. ~Item~ The largest program (less about 9K7) that you can run at the current
  1201. moment without swapping a program to disk. This is the larger of Largest
  1202. Available Conventional Memory and Largest Available Expanded Memory.
  1203.  
  1204. ~Item~ The maximum "other" program size for your system. When you start up
  1205. DESQview, the Largest Available Expanded Memory specifies this number, and
  1206. should correspond to the red size shown in the tables on pages 154-155
  1207. ~dash~ less the 9K DESQview overhead and the space taken by device drivers
  1208. and memory-resident programs you loaded when you booted or before you
  1209. started DESQview. This number will always be 0K if you don't have EMS4 or
  1210. EEMS memory. It will also be 0K (zero) if you do not have any exPANDed
  1211. memory available below 640K.
  1212.  
  1213. The Memory Status program is small ~dash~ about 7K, including  DESQview
  1214. overhead. It runs in background and therefore dynamically reflects changes
  1215. in memory usage on your system as they occur.
  1216.  
  1217. This section only applies if you have an enhanced expanded memory (EEMS)
  1218. board or EMS4 board installed on a PC, PC-XT, or PC-AT.  It doesn't apply:
  1219.  
  1220. If you have a regular expanded memory (EMS3) board.  There are no steps
  1221. you can take to improve how DESQview uses EMS3 memory or to use EMS3 memory
  1222. to run programs.  This is a fundamental limitation of the EMS3 hardware
  1223. design. There are also no steps you can take to improve an EMS3 board which
  1224. has an EMS4 software driver; the extra steps described here refer to
  1225. hardware features not available for these boards.
  1226.  
  1227.  However, if you have a PC-AT, you should consider reconfiguringsome of
  1228. your EMS memory as exTENDed memory (see page)  ~dash~  because DESQview can
  1229. run part of itself inexTENDed memory.  Doing this reduces the amount of
  1230. conventional memoryDESQview uses by 60K, and thus increases the size of the
  1231. largest programyou can run by 60K.
  1232.  
  1233.  If you have less than 1MB of EMS4 or EEMS memory installed on your system.
  1234.  
  1235.  If you have a 386 PC.  All the optimizations described in this section are
  1236. done for you automatically.  You always get the "best" possible memory
  1237. configuration  ~dash~  if you have at least 1MB of 386 exTENDed memory and
  1238. have installed QEMM-386. 
  1239.  
  1240.  The most important resources available to DESQview are the speed of your
  1241. computer and the amount and type of memory you have installed. The faster
  1242. your PC is, the more quickly DESQview (or any other program) can perform
  1243. its functions. But speed is not DESQview's most critical resource; memory
  1244. is. This appendix explains how knowing what kind of memory, how much of it
  1245. you have and how that memory is configured will allow you to get the
  1246. optimum performance from DESQview and the programs you run in DESQview.
  1247.  
  1248. ~Subhead~ Expanded Memory: An Overview
  1249.  
  1250.  Most programs written for DOS 2.x to 4.x may access only the first 1024K
  1251. (one megabyte) of memory, and typically they only use the first 640K, since
  1252. the other memory areas between 640K and 1024K (called High Memory or
  1253. sometimes Reserved Memory or the Upper Memory Blocks) are reserved for
  1254. special functions. The maximum amount of memory that most programs and data
  1255. can occupy is 640K, less what DOS requires. This first 640K of memory is
  1256. called conventional memory. Without additional memory management, such as
  1257. loading device drivers into High Memory or using DESQview's ability to load
  1258. part of itself into memory above 640K, the largest single program you could
  1259. ever run inside DESQview would be about 430K ~dash~ because DOS takes
  1260. approximately 60K and DESQview uses about 150K. By using a memory manager
  1261. and loading part of DESQview into high memory, you can significantly
  1262. increase the amount of memory available to run programs.
  1263.  
  1264. If you run multiple programs on a computer with only 640K, 430K is the
  1265. maximum size of all the programs you can run concurrently, including all
  1266. their data. (The term concurrently means that multiple programs are both
  1267. loaded into the 0K-640K area of memory and are runing simultaneously in
  1268. this area.) This amount of memory can be very limiting for many of today's
  1269. DOS programs, so ways of reducing DOS and DESQview overhead are often used
  1270. in order to increase the size of memory available for each program. In
  1271. addition, DESQview, with additional memory, configured properly, can use as
  1272. much additional memory above 640K as you can add to your system.There are
  1273. differences, however, in how much and what kind of memory you can add to
  1274. different types of PC's and how DESQview can make use of that memory.
  1275.  
  1276. ~Subhead~ ExTENDed Memory
  1277.  
  1278.  An 80286 or 386 or i486 PC can also have many megabytes of another type of
  1279. memory, called exTENDed memory. (You cannot install exTENDed memory on a PC
  1280. or PC-XT) ExTENDed memory begins at 1024K and continues from there; it is
  1281. NOT located between 640K and 1024K. A new classification of programs, using
  1282. a "DOS  Extender" can actually run in Extended memory and use some of the
  1283. lower 640K to handle their work with DOS. These programs are specially
  1284. written to be DOS Extended by the program's developer. Lotus 1-2-3 Release
  1285. 3 is an example of one such program. Except for DOS Extended programs,
  1286. exTENDed memory is severely limited in utility by the fact that most
  1287. existing DOS programs can't use it, either to run themselves or to store
  1288. data. A memory manager, however, can turn exTENDed memory into exPANDed
  1289. memory, which DESQview can use.
  1290.  
  1291. DESQview can also run 64K of itself in the first 64K of exTENDed memory
  1292. (the High Memory Area or HMA). So, if you have an 80286 or 386 PC with
  1293. exTENDed memory installed, DESQview's overhead (in conventional memory)
  1294. drops by 64K to about 85K ~dash~ and the largest program you run
  1295. accordingly increases by 64K to 495K. DESQview was the first DOS program to
  1296. use the High Memory Area. Other programs have now also been modified to use
  1297. it as well. The  HMA may be used by only one program, so  it  should be
  1298. used by the program which fills it the most. DESQview uses practically all
  1299. of the HMA. Do not confuse high memory (the reserved memory between 640K
  1300. and 1024K) with the HMA (High Memory Area), which is another piece 64K of
  1301. memory starting at 1024.
  1302.  
  1303. ~Subhead~ ExPANDed Memory
  1304.  
  1305.  In order to access more than 640K on all types of DOS computers (including
  1306. 8088 and 8086), another type of memory was invented ~dash~ called exPANDed
  1307. memory (EMS). It is possible to both store data and run programs in
  1308. exPANDed memory, but only when the memory is configured properly and
  1309. managed effectively. DESQview can manage exPANDed memory for multiple
  1310. programs, even if those programs have not been modified to understand
  1311. exPANDed memory themselves. DESQview is the "control program" you need to
  1312. actually make use of all the capabilities of the EMS memory technology. EMS
  1313. stands for ExPANDed memory Specification.
  1314.  
  1315. ~Subhead~ 386 or i486 PCs
  1316.  
  1317.  On a 80386 or i486 PC, you DO NOT need a special EMS memory board. All you
  1318. need is standard exTENDed memory, the Quarterdeck Expanded Memory Manager
  1319. 386 (QEMM-386), and DESQview. QEMM-386 automatically converts a 386 or i486
  1320. PC's exTENDed memory into exPANDed memory. DESQview acts as the control
  1321. program to take advantage of the ability of the 386 PC's virtual 86 machine
  1322. architecture to emulate EMS4 memory. To DESQview and QEMM-386, both an
  1323. 80386SX or i486 PC have the same memory management features as a 386 PC, so
  1324. all references to a 386 PC or an 80386 processor in this manual apply to an
  1325. 80386SX or an i486 computer as well.
  1326.  
  1327. ~Subhead~ Determining the Largest Program Size in DESQview
  1328.  
  1329.  The table below shows how DESQview allocates memory. With EMS or a 386 PC
  1330. DESQview can reduce its overhead substantially ~dash~ even to zero in some
  1331. cases ~dash~ by loading parts of itself in both exTENDed and EMS memory.
  1332. Your values may be slightly smaller or much larger depending on your use of
  1333. the LOADHI programs which come with Quarterdeck's QRAM and QEMM.
  1334. ~Subhead~ About this Appendix
  1335.  
  1336.  Below is the table of contents for this appendix. Everyone should read the
  1337. first three sections. Pages 148-156, The Expanded Memory Technology is for
  1338. the more technically minded ~dash~ and can be skipped if you're not
  1339. interested in the details. Optimizing How DESQview Uses EMS4 or EEMS Memory
  1340. isn't mandatory reading either, but you may need to take some of the steps
  1341. described in that section to get the Largest Program Size listed above.
  1342.  
  1343. ~Subhead~ Expanded Memory That DESQview Supports
  1344.  
  1345.  DESQview's power increases when you add an expanded memory board to your
  1346. PC, PC-XT, or PC-AT, or when you run DESQview on a 386 PC in conjunction
  1347. with Quarterdeck Expanded Memory Manager 3861
  1348. Begin footnote
  1349. Notes start at the end of this appendix
  1350. End footnote
  1351. . (QEMM-386). There are three standard types of exPANDed memory. DESQview
  1352. supports all of them:
  1353.  
  1354. ~Item~ Expanded memory that follows the Lotus/Intel/Microsoft Expanded
  1355. Memory Specification Version 3. This is usually abbreviated as EMS memory,
  1356. EMS3 memory LIM memory, or sometimes LIM-EMS3 memory. EMS3 is a completely
  1357. compatible subset of EMS4.
  1358.  
  1359. ~Item~ Expanded memory that follows the Lotus/Intel/Microsoft Expanded
  1360. Memory Specification Version 4. This is usually abbreviated as EMS memory,
  1361. EMS4 memory, LIM4 memory, or sometimes LIM-EMS4 memory.
  1362.  
  1363. ~Item~ Expanded memory that follows the AST/Quadram/Ashton-Tate Enhanced
  1364. Expanded Memory Specification. This is usually abbreviated as EEMS memory
  1365. or sometimes enhanced-EMS memory.
  1366.  
  1367. Note that memory boards which were originally designed for EMS3 can have an
  1368. EMS4 driver written for them, but they will not gain all of the new
  1369. features of EMS4 because they lack the necessary hardware to perform the
  1370. advanced functions. The most important of these is the ability to map more
  1371. than 64K of memory at one time. EEMS memory boards can become EMS4 memory
  1372. boards by simply obtaining an EMS4 software driver from the manufacturer,
  1373. because the extra hardware necessary for the advanced functions is built
  1374. into EEMS boards. Almost all references to EMS4 in this manual apply to
  1375. EEMS as well.
  1376.  
  1377. The extra DESQview capabilities available to you are directly related to
  1378. the amount and type of exPANDed memory you have. DESQview uses each type to
  1379. its fullest potential and automatically detects its presence, as long as
  1380. you've loaded an exPANDed memory manager1~dagger~ (EMM) when you booted
  1381. your system.
  1382.  
  1383. ~Subhead~ Expanded Memory NOT Supported By DESQview
  1384.  
  1385.  DESQview is not compatible with exPANDed memory emulators on 80286 PC's
  1386. which convert exTENDed memory or disk space into exPANDed memory without
  1387. additional hardware. These programs use significant amounts of memory below
  1388. 640K and are not fast enough to perform effectively with DESQview.
  1389.  
  1390. ~Subhead~ Determining If You Have Expanded Memory Compatible with DESQview
  1391.  
  1392.  You have exPANDed memory that's compatible with DESQview:
  1393.  
  1394. ~Item~ On a PC, PC-XT, or PC-AT, only if you've purchased an exPANDed
  1395. memory board and installed it in your PC along with the corresponding
  1396. exPANDed memory manager driver program. Examples of these are: 
  1397.  
  1398.  ~dash~  EMS Version 3 (EMS3) boards, such as the Intel AboveBoard,
  1399. BocaRAM, and Everex RAM 3000 and others which can use only 64K of exPANDed
  1400. memory at any one time.
  1401.  
  1402.  ~dash~  EMS Version 4 (EMS4) boards (which also include EMS3
  1403. compatibility) such as the Intel AboveBoard Plus, All Computers CHARGECARD,
  1404. Computer Peripherals CPI-XMA, Everex RAM 8000, Newer Technologies
  1405. Concentration, STB Rapidmeg, Teletek X-Bandit, DakotaRAM board, and any of
  1406. the EEMS boards with an EMS4 driver. These boards can access more than 64K
  1407. of exPANDed memory at any one time.
  1408.  
  1409.  ~dash~  Enhanced-EMS (EEMS) boards (which include EMS3 memory as a
  1410. subset), such as the AST RAMpage, AST SixPak Premium, AST Advantage
  1411. Premium, and PC Technologies RAMpartner.
  1412.  
  1413. ~Item~ On a 386 PC,  if you have installed the Quarterdeck Expanded Memory
  1414. Manager 3861
  1415.  
  1416. ~Begin footnote~
  1417.  
  1418. Notes start at the end of this appendix
  1419.  
  1420. ~End footnote~
  1421.  
  1422. An exPANDed memory board is not the same as an exTENDed memory board. The
  1423. similarity of names makes this a confusing point. Unless your memory board
  1424. explicitly says that it's an exPANDed memory board that supports the EMS3,
  1425. EMS4 or EEMS standard (or you have a 386 PC and QEMM-386), you don't have
  1426. exPANDed memory. (See page 134 for information on using DESQview with
  1427. exTENDed memory.)
  1428.  
  1429.  If you have Quarterdeck's Manifest program, you can determine what kind of
  1430. memory you have, how it is configured and how DESQview and other programs
  1431. can use it.
  1432.  
  1433. ~Heading~ How DESQview Uses Expanded Memory
  1434.  
  1435.  DESQview uses exPANDed memory in three ways:
  1436.  
  1437. ~Item~ As a "swapping" area, to temporarily store programs when DESQview
  1438. needs additional space to load other programs or to save "graphics
  1439. screens."
  1440.  
  1441. ~Item~ As data storage, for programs that explicitly know about and use EMS
  1442. memory for data ~dash~ such as 1-2-3 Release 2 or Release 3, WordPerfect 5,
  1443. Paradox, and so forth.
  1444.  
  1445. ~Item~ As program memory ~dash~ that is, memory that programs can run in.
  1446.  
  1447. ExPANDed memory can also be used for RAM disks, print spoolers, and disk
  1448. caches. When used for these, load these driver programs before you start up
  1449. DESQview, so that all the programs you run can take advantage of their
  1450. features.
  1451.  
  1452. ~Subhead~ Using Expanded Memory as a "Swapping" Area
  1453.  
  1454.  When all the programs you want to run at the same time won't fit in
  1455. memory, DESQview automatically manages memory for you by "swapping"
  1456. programs in and out as you need them. Although swapping can be done to a
  1457. hard disk, a RAM disk, or exPANDed memory, it's fastest when done to
  1458. exPANDed memory. Any type of exPANDed memory may be used for swapping.
  1459.  
  1460. When you start up a program, DESQview begins by finding a place in memory
  1461. for it to run. If there's an unused area large enough, DESQview puts the
  1462. program in that area.
  1463.  
  1464. Programs loaded in the first 640K can run concurrently, since they're
  1465. running in the memory that DOS knows about and supports. However, if
  1466. there's no unused area large enough for the program to fit in, one or more
  1467. of the programs already loaded are swapped out to make room ~dash~ which is
  1468. to say, they're removed from memory and stored somewhere else temporarily.
  1469.  
  1470. Programs that are swapped out are frozen (suspended) ~dash~ because those
  1471. programs are no longer in memory, where they must be for your PC to execute
  1472. them. When you switch back to a swapped out program, it's reloaded into
  1473. memory and resumes where it left off when it was swapped out.  (Programs
  1474. that can't be arbitrarily suspended must be designated as nonswappable in
  1475. your .DVP file.)
  1476.  
  1477. The amount of time it takes to swap one program out and another program in
  1478. is highly variable. If you're swapping to a hard disk, the time depends on
  1479. the size of your program and the speed of your hard disk. Hard disk times
  1480. vary enormously. A "fast" disk may swap three or even five times faster
  1481. than a "normal" disk. Swapping to a RAM disk is faster, but still not
  1482. optimal because, even though RAM disk is "memory," accessing it still
  1483. incurs DOS overhead. The fastest method is swapping to expanded memory.
  1484. It's virtually instantaneous.
  1485.  
  1486. ~Subhead~ Using Expanded Memory as Data Storage
  1487.  
  1488.  Many programs ~dash~ such as 1-2-3 Release 2 ~dash~ use exPANDed memory to
  1489. make large amounts of data available quickly. When DESQview is used on a
  1490. system with exPANDed memory, it extends this capability by allowing several
  1491. programs to use exPANDed memory at the same time.  DESQview ensures that
  1492. each program's use of exPANDed memory doesn't interfere with any other
  1493. program's use of it.
  1494.  
  1495. For example, you could have 1-2-3 Release 2 and WordPerfect each storing
  1496. data in exPANDed memory while running in its own window. DESQview
  1497. automatically manages the allocations of exPANDed memory so that each
  1498. program "sees" only its own exPANDed memory.
  1499.  
  1500. ~Subhead~ Using Expanded Memory as "Program" Memory
  1501.  
  1502.  Although swapping programs to exPANDed memory is nice, running programs in
  1503. exPANDed memory is even better. You can run programs in exPANDed memory
  1504. only if you have fully hardware compatible EMS4 memory, ENHANCED exPANDed
  1505. memory (EEMS), or are using a 386 PC in conjunction with QEMM-386.
  1506.  
  1507. Running programs in expanded memory means that you can run more programs
  1508. than would normally fit in 640K. You can run as many programs
  1509. simultaneously as will fit in your entire exPANDed memory, up to 32MB
  1510. worth. The size of each program is less than 640K (not counting the data a
  1511. program may store in exPANDed memory), and the total amount of memory used
  1512. for running programs can be many megabytes.
  1513.  
  1514. You cannot run programs in exPANDed memory if you only have EMS3 memory.
  1515. The reason is that with EMS3 your PC can only "see" one 64K piece of EMS
  1516. memory at any one time,  while with fully hardware compatible EMS4 memory,
  1517. or EEMS, it can "see" enough memory to run most existing DOS programs. You
  1518. only get capability to run programs in EMS4 memory when DESQview manages
  1519. your EMS4 memory.
  1520.  
  1521. ~Subhead~ Optimizing The Use of the Memory You Have by Backfilling
  1522.  
  1523.  You may have to make sure the memory you have is available for optimal use
  1524. by DESQview by backfilling conventional memory with EMS. If you do not have
  1525. an 80386 PC, to properly use EMS4 memory, you may need to disconnect some
  1526. of your conventional memory (below 640K) and substitute EMS4 memory for it.
  1527. This is called backfilling conventional memory with exPANDed memory.
  1528. Although you may be reluctant to disconnect perfectly good memory, if you
  1529. don't, you severely limit the number and size of programs you can run in
  1530. EMS4 memory. In the worst case, you can't run any programs in EMS4 memory
  1531. ~dash~ see Optimizing How DESQview Uses EMS4 or EEMS Memory on page 167.
  1532. Note that disconnecting conventional memory usually just involves changing
  1533. switch settings on your memory board and the documentation for the board
  1534. will usually explain how to do it. If not, contact your dealer or technical
  1535. support at your EMS board's manufacturer.
  1536.  
  1537. ~Heading~ Installing Expanded Memory
  1538.  
  1539.  Each time you start up DESQview, it checks for the presence of exPANDed
  1540. memory and automatically uses it if it's available.  So, it doesn't matter
  1541. to DESQview whether you install DESQview first, exPANDed memory first, or
  1542. both at the same time.
  1543.  
  1544. ~Subhead~ If You Have a PC, PC-XT, or PC-AT or PS2
  1545.  
  1546.  When you install an expanded memory board on a PC, PC-XT, or PC- AT, be
  1547. sure to follow the board manufacturer's instructions carefully.  You must
  1548. perform at least these four basic steps:
  1549.  
  1550. ~Step~ Verify that the default factory switch settings are correct for your
  1551. hardware configuration and, if they're not, make them correct.
  1552.  
  1553. ~Step~ Open up your PC chassis and install the board in an empty slot. We
  1554. recommend the board be populated with at least 2MB of memory. 
  1555.  
  1556. ~Step~ Install the exPANDed memory manager (EMM) for the board on your boot
  1557. disk and in your CONFIG.SYS file.
  1558.  
  1559. ~Step~ Reboot your system to load this exPANDed memory manager.
  1560.  
  1561. Although it's sufficient to follow these steps, there are additional steps
  1562. we recommend depending on the type of exPANDed memory board you've
  1563. installed:
  1564.  
  1565. ~Item~ EMS3 board. 
  1566.  
  1567.  ~dash~  We recommend that you use part of your EMS3 board for swapping
  1568. programs and graphics screens. This occurs automatically unless you've run
  1569. the DESQview Setup program and specified an explicit SWAP drive to use (see
  1570. Appendix A).  Also, you can reduce DESQview's overhead if you have 64K of
  1571. exTENDed memory (see page 134) which may require you to change your EMS
  1572. board's settings if you don't already have exTENDed memory. There's no way
  1573. to improve how DESQview uses EMS3 memory or to use EMS memory to run
  1574. programs. This is a fundamental limitation of the EMS3 hardware design even
  1575. if an EMS4 software driver is in place.
  1576.  
  1577. ~Item~ EMS4 or EEMS board.
  1578.  
  1579.  ~dash~  We strongly recommend that you optimize the use of EMS4 or
  1580. enhanced exPANDed memory by disabling part of your conventional memory and
  1581. backfilling it with EMS4 memory. If you do, DESQview and QRAM, if you are
  1582. using it, will automatically make optimal use of the memory your hardware
  1583. makes available.
  1584.  
  1585. ~Subhead~ If you Have a 386, 386SX, or i486 PC
  1586.  
  1587.  If you have an 80386, 386SX, or i486 PC (they're all the same to DESQview
  1588. and QEMM-386, as far as memory management is concerned) there's no need to
  1589. install a special exPANDed memory board because, on a 386 PC, standard 386
  1590. exTENDed memory can act like exPANDed memory. There are only three things
  1591. you must do:
  1592.  
  1593. ~Step~ Install Quarterdeck Expanded Memory Manager 386 (QEMM-386) on your
  1594. hard disk and in your CONFIG.SYS file.
  1595.  
  1596. ~Step~ Reboot your system to load this exPANDed memory manager.
  1597.  
  1598. ~Step~  Use as much of the unused area between 640K and 1024K as possible. 
  1599.  
  1600.  ~dash~  Installing DESQview, QEMM-386 and running OPTIMIZE will usually do
  1601. this for you automatically.
  1602.  
  1603. ~Subhead~ Verifying That Expanded Memory is Correctly Installed
  1604.  
  1605.  Once you've installed your exPANDed memory board (except on a 386 PC),
  1606. installed the exPANDed memory manager, and rebooted your system, it's
  1607. useful to be able to determine whether you've installed everything
  1608. correctly:
  1609.  
  1610. ~Item~ When you reboot, watch the screen for information about exPANDed
  1611. memory ~dash~ generally in the form of a count-up as expanded memory is
  1612. tested. If no exPANDed memory information appears, something is wrong.
  1613. Recheck your hardware for the proper configuration.
  1614.  
  1615. ~Item~ If you're familiar with DESQview, run the Memory Status program (see
  1616. page 175). If a nonzero number appears under Total Expanded Memory (bottom
  1617. left number), DESQview has recognized that you have exPANDed memory
  1618. installed. If the number is zero, you've done something wrong.
  1619.  
  1620.  Once your hardware is properly set up, you can also control DESQview and
  1621. your programs use that memory by using the Change A Program Menu, DESQview
  1622. Setup and the Tune Performance menu, as explained in appropriate sections
  1623. of this manual.
  1624.  
  1625. ~Heading~ The Expanded Memory Technology
  1626.  
  1627.  This section offers a brief discussion, for the more technically minded,
  1628. of how exPANDed memory works and of how DESQview takes advantage of the
  1629. EMS4 memory technology to run multiple, large programs concurrently.
  1630.  
  1631. ~Subhead~ PC Memory:  an Overview
  1632.  
  1633.  Three types of memory can be present on a PC: The following diagrams
  1634. illustrate the basic configurations of memory that are possible.
  1635.  
  1636. These areas represent conventional memory ~dash~ the memory between 0K and
  1637. 1024K (1MB). The first 640K is used to run programs, and the remaining 384K
  1638. is reserved for the system.
  1639.  
  1640.  These areas represent exTENDed memory ~dash~ the memory starting at 1MB
  1641. and continuing to the end of the available address range. ExTENDed memory
  1642. extends the 1MB of conventional memory. Most 286 and 386 PCs with 1 MB of
  1643. memory have 640K of Conventional memory and 384K of exTENDed memory; they
  1644. do NOT have memory between 640K and 1024K.   ExTENDed memory can only be
  1645. used for RAM disks, print spoolers, and disk caches, or DOS extended
  1646. programs ~dash~ with one exception: DESQview can run 64K of itself in
  1647. exTENDed memory (see page 134).
  1648.  
  1649.  These areas represent exPANDed memory ~dash~ a special kind of extra
  1650. memory.  On a PC, PC-XT, or PC-AT, expanded memory and exTENDed memory are
  1651. physically different entities ~dash~ each requiring its own, special
  1652. hardware memory board.
  1653.  
  1654. ~Begin footnote~
  1655.  
  1656. Although exPANDed memory boards can be configured to use part of their
  1657. memory as exTENDed memory, exTENDed memory boards cannot be used as
  1658. exPANDed memory ~dash~ except on a 386 PC.
  1659.  
  1660. ~End footnote~
  1661.  
  1662. Expanded memory is a separate block of memory that sits beside
  1663. conventional and exTENDed memory. On a 386 PC, however, exTENDed memory can
  1664. act like exPANDed memory ~dash~ by loading Quarterdeck Expanded Memory
  1665. Manager 386 (QEMM-386) when you boot your system.
  1666.  
  1667. ~Subhead~ How Conventional Memory Works
  1668.  
  1669.  Conventional memory is memory between 0K and 1024K (1MB).  It's the area
  1670. of memory in which all programs must run ~dash~ because DOS 2.x/4.x only
  1671. recognizes and supports programs loaded into this area. Conventional memory
  1672. is divided into three areas:
  1673.  
  1674. ~Item~ Motherboard memory is the basic memory that comes with every PC. 
  1675. It's called "motherboard memory" because it's located on your computer's
  1676. basic system board ~dash~ the "motherboard." It varies from 64K to 640K,
  1677. depending on your PC.
  1678.  
  1679. ~Item~ Add-on memory is used to extend the motherboard memory when it's
  1680. less than 640K. For example, if there's 256K on your motherboard, you could
  1681. "add on" up to 384K of additional memory.  It's also called "add-on" memory
  1682. because you must "add on" a physical memory board that contains this
  1683. memory.
  1684.  
  1685. ~Item~ High memory is the memory between 640K and 1024K (1MB). It's
  1686. sometimes called "reserved memory" because it's reserved for use by the
  1687. system ~dash~ for the ROM BIOS and hardware devices, such as display
  1688. adapter boards, network boards, and hard disk controllers. Unused addresses
  1689. in this region have no physical memory in them.
  1690.  
  1691. The motherboard and add-on memories must form one contiguous block,
  1692. starting at 0K and extending to a maximum of 640K. High memory, however, is
  1693. usually a collection of disjoint areas ~dash~ depending on your hardware
  1694. configuration.
  1695.  
  1696. The following diagram illustrates how conventional memory is divided up. 
  1697. The use of the first 640K is the same for all PCs. The allocation of memory
  1698. in high memory, however, varies according to whether you have a PC, PC-XT,
  1699. PC-AT or 386 PC (see diagrams on the following page). The address values
  1700. are in hexadecimal on one side of the chart, and in decimal on the other.
  1701.  
  1702. ~Subhead~ How High Memory is Allocated
  1703.  
  1704.  High memory has three main uses:
  1705.  
  1706. ~Item~ As the area for the ROM BIOS ~dash~ that part of DOS that's built
  1707. into every PC and manages the hardware basics, such as reading the
  1708. keyboard, driving the printer, and displaying information on the screen.
  1709.  
  1710. ~Item~ As the video display RAM, which stores the information that appears
  1711. on the video display monitor.
  1712.  
  1713. ~Item~ As the area for hardware-specific ROMs ~dash~ for example, the ROM
  1714. for the enhanced graphics (EGA) display adapter and the hard disk
  1715. controller.
  1716.  
  1717. The next diagram illustrate how high memory is usually configured. The Page
  1718. Frame is the 64K area where most programs can "see" exPANDed memory. Unused
  1719. areas are used by DESQview to run programs and parts of itself; the DV.COM2
  1720. program places parts of DESQview into these unused areas. These areas may
  1721. also be used by the LOADHI feature of QRAM and QEMM.
  1722.  
  1723. ~Subhead~ How ExTENDed Memory works
  1724.  
  1725.  ExTENDed memory is simply more memory starting at 1024K (1MB).  It's only
  1726. available on 286 and 386 PCs. It may only be used when the PC is in
  1727. "protected mode." DOS cannot function in "protected mode."
  1728.  
  1729. Unlike conventional memory, exTENDed memory has an important limitation:
  1730. exTENDed memory cannot be used for running standard DOS programs under DOS
  1731. 2.x/4.x. It can only be used for RAM disks, print spoolers, and disk
  1732. caches, or DOS extended programs ~dash~ with one exception:  Some special
  1733. programs, like DESQview, can run 64K of themselves in exTENDed memory (see
  1734. page 134).
  1735.  
  1736. ~Subhead~ How Expanded (EMS) Memory Works
  1737.  
  1738.  It's not necessary to understand how exPANDed memory works to use it,
  1739. since DESQview handles all the details for you automatically.  There are,
  1740. however, "right" and "not so right" ways to use it. So, a basic
  1741. understanding of the concepts and processes involved can help you be sure
  1742. that you're getting the most out of your expanded memory board.
  1743.  
  1744. There are three types of exPANDed memory. Conceptually, they work the same.
  1745. The difference is in their limitations, which are imposed by the hardware
  1746. design (see explanations of EMS3 and EMS4/EEMS earlier in this appendix).
  1747.  
  1748. The fundamental concept to understand about exPANDed memory is that DOS
  1749. doesn't know it exists.  As far as DOS is concerned, there's only 1MB of
  1750. memory addresses, 0K to 1024K, but DOS does not know whether any memory is
  1751. in all of these addresses.
  1752.  
  1753. ~Subhead~ EMS3 Only Maps 64K At A Time
  1754.  
  1755.  Any 64K piece of exPANDed memory can be "mapped" into an unused 64K area
  1756. of high memory. The key concept is mapping. What it means is that there's
  1757. hardware on the exPANDed memory board that "fools" the PC into thinking
  1758. that a portion from the exPANDed memory board is really in an unused area
  1759. of conventional memory. The previously unused area now has memory in it.
  1760. The piece of memory at this location can be changed to some other piece
  1761. without losing the original data.
  1762.  
  1763. With exPANDed memory, if your program tells the exPANDed memory board to
  1764. "map" some 64K chunk of exPANDed memory into the 64K area of high memory
  1765. that starts at 784K then, when the program reads or stores data in the 784K
  1766. to 848K area, it would, instead, actually be reading or storing in a 64K
  1767. chunk of exPANDed memory ~dash~ as the following diagram illustrates:
  1768.  
  1769. Effectively, the mapped 64K area of high memory is a porthole onto a larger
  1770. area of exPANDed memory. It's just that, when you look through the porthole
  1771. you can only "see" things that are exactly that size and you can only see
  1772. one "view" at a time. If you want to see a different "view" through the
  1773. porthole, you have to tell the window to "shift views" Then, you see only
  1774. the new view you selected.
  1775.  
  1776. A program that's been modified to know about exPANDed memory can access
  1777. megabytes of data by looking at it in 64K chunks. The program might start
  1778. by telling the exPANDed memory manager (the program that controls the
  1779. "view") that it wants to use (view) a particular 64K area of exPANDed
  1780. memory. Then it fills this area with data. When this 64K area is full, it
  1781. then tells the exPANDed memory manager that it wants to use another 64K
  1782. area. Note that no information is moved. All the program's data is really
  1783. stored in exPANDed memory and available at normal memory speeds. It's just
  1784. that only one 64K area can be accessed at a time.
  1785.  
  1786. ~Subhead~ How EMS4 and   Enhanced Expanded Memory (EEMS) Can Map More
  1787. Memory
  1788.  
  1789.  The deficiency of EMS3 memory is that most programs are larger than 64K
  1790. and thus can't run in exPANDed memory (since 64K is the maximum area "seen"
  1791. at one time). They can only use it for data storage. Two methods have been
  1792. developed to remove this restriction. The first was the
  1793. AST/Quardram/Ashton-Tate Enhanced Expanded Memory Specification (EEMS
  1794. memory or enhanced-EMS memory).  The second was EMS Version 4. Both EEMS
  1795. and EMS4 are supersets of EMS memory. The major difference between EEMS and
  1796. EMS4 is how the software driver is accessed. DESQview can determine the
  1797. correct method automatically. Each of these newer specifications can:
  1798.  
  1799. ~Item~ Map an area larger than 64K (in fact any area from 16K to 1MB in
  1800. size).  This increases the amount of exPANDed memory which can be "seen" at
  1801. one time.
  1802.  
  1803. ~Item~ Map several non-adjacent areas. (An EMS3 board can only map to a
  1804. single 64K area of high  memory.)
  1805.  
  1806. ~Item~ Map areas of memory below 640K as well as above 640K. This is where
  1807. programs run, so if enough exPANDed memory can be mapped below 640K a
  1808. program can actually be run from exPANDed memory.
  1809.  
  1810. Taken together, these "enhanced" exPANDed memory capabilities make it
  1811. possible to run not just one, but multiple programs concurrently in
  1812. exPANDed memory. The process of multitasking is now viable because
  1813. context-switching (the process of allocating these time slices) can be done
  1814. by simply changing the piece of expanded memory which is "seen" below 640K.
  1815. DESQview conceals all the EMS4 mechanisms from the program and makes it
  1816. appear (to the program) that it's running by itself in the PC's
  1817. conventional (0K-640K) memory area. 
  1818.  
  1819. ~Heading~ Technical Notes
  1820.  
  1821.  The notes in this section provide additional technical information about
  1822. using an EMS4 or EEMS board with DESQview. Notes 1-6 are referenced by the
  1823. text of this appendix. Notes 7-10 are not referenced in the text, but provide
  1824. technical information not directly addressed elsewhere.
  1825.  
  1826.  1      If you use a 386 expanded memory manager other than QEMM-386 (such as
  1827. the Compaq Expanded Memory Manager), you may not be able to take advantage of
  1828. all of DESQview's 386 PC capabilities.
  1829.  
  1830.  2     All program sizes used in this appendix assume that you start up
  1831. DESQview by invoking DV.COM (which is a copy of XDV.COM) rather than DV.EXE. 
  1832. When you start up DESQview using DV.COM, part of DESQview is loaded into
  1833. exPANDed memory areas between 640K and 1024K in addition to the page frame,
  1834. thus increasing the amount of conventional memory available to run programs.
  1835. For more information on DV.COM, see Installation Notes.
  1836.  
  1837.  DV.COM won't work if exPANDed memory mapped between 640K and 1024K conflicts
  1838. with some other device such as some types of local area network boards, or if
  1839. the first 64K of exTENDed memory (the HMA) can't be accessed properly with
  1840. some PC- compatibles. (This is the reason both DV.COM and DV.EXE are
  1841. provided.) If DV.COM doesn't work on your system, you should try to isolate
  1842. the reason. If you cannot get it to work, then delete DV.COM (a copy of it is
  1843. saved as XDV.COM).
  1844.  
  1845.  3     The memory sizes marked with a 3 in this appendix are computed for the
  1846. following configuration:
  1847.  
  1848.  Hardware. An IBM PC, IBM PC-XT, IBM PC-AT, IBM Personal System/2, Compaq
  1849. Deskpro 386, 100% IBM PC-compatible, or Deskpro 386 compatible with an
  1850. enhanced graphics (EGA) or Video Graphics Array (VGA) display adapter, add-on
  1851. memory removed or set to 0K, motherboard memory reduced to 256K, and an EMS4
  1852. or EEMS memory board with a minimum of 1MB (see note 5).
  1853.  
  1854.  Software. Booted under MS-DOS 3.3, an exPANDed memory manager loaded, 15
  1855. file buffers allocated (in CONFIG.SYS), DESQview "common memory" set to 17K
  1856. (see Appendix A), DESQview started using DV.COM (see note 2), and no other
  1857. device drivers or memory- resident programs loaded when you booted your
  1858. system or before you started up DESQview.
  1859.  
  1860.  DESQview also requires about 9K overhead per program, which has already been
  1861. subtracted out of all memory sizes used in this appendix (see note 7).
  1862.  
  1863.  See the tables on page 173-174 for more detailed information for your
  1864. particular hardware configuration.
  1865.  
  1866.  The memory limits used in this appendix refer only to the amount of memory
  1867. used by the program itself. If you're running a program ~dash~ such as  
  1868. 1-2-3 Release 2, Symphony, Framework II, or Paradox ~dash~ that uses exPANDed
  1869. memory to store data, these programs still have full use of the exPANDed
  1870. memory for data storage.
  1871.  
  1872.  4     The primary way to improve the "first" program size is to delete all
  1873. memory-resident programs (like Sidekick) from your AUTOEXEC.BAT file ~dash~
  1874. in fact, we recommend running such programs in DESQview windows anyway (see
  1875. Appendix E). You might also check that you aren't loading any unnecessary
  1876. device drivers in CONFIG.SYS. We recommend against reducing the number of
  1877. file handles (FILES in CONFIG.SYS) below 15, if you can. You can also use the
  1878. LOADHI program which comes with QEMM or QRAM to move items loaded below 640K
  1879. into the 640K to 1024K region. Loading a lot of items into this area may
  1880. force some of DESQview to reside below 640K.
  1881.  
  1882.  5     Maximum program sizes are ultimately limited by the total amount of
  1883. memory installed on your system ~dash~ that is, by the sum of your
  1884. motherboard memory, your add-on memory, and your EMS4 or EEMS memory.
  1885.  
  1886.  For example, if you have 128K of motherboard memory, 128K of add-on memory,
  1887. and 2,048K of EMS4 memory, your total memory is 2,304K.  Thus, the total of
  1888. all programs loaded and running concurrently cannot exceed 2,304K ~dash~ less
  1889. any memory you've set aside for RAM disks, print spoolers, disk caches. If
  1890. you load more than 2,304K of programs, the remainder is swapped out to disk.
  1891.  
  1892.  The maximum amount of memory that DESQview can use for running programs is
  1893. limited only by the amount of EMS4 memory that can be installed on your
  1894. system ~dash~ generally, 32MB on a PC, PC-XT, or PC-AT and 64MB or more (with
  1895. QEMM-386) on a 386 PC.
  1896.  
  1897.  6     Some add-on memory boards (such as the AST SixPakPlus) permit you to
  1898. disconnect all their memory by setting the switches to 0K. Most boards,
  1899. however, don't allow a 0K setting. If your memory board doesn't allow 0K, you
  1900. must remove it. If your memory board does allow a 0K setting, and has a clock
  1901. or communications port, you may want to leave it installed so you can
  1902. continue to use these features.
  1903.  
  1904.  7     DESQview requires about 9K overhead per program (for most programs),
  1905. which has already been subtracted from the "first" and "other" program sizes
  1906. listed in this appendix. However, the 9K DESQview overhead has not been
  1907. subtracted out of the sizes listed by the Memory Status program. So, the
  1908. Total Available Conventional Memory and Largest Available Conventional Memory
  1909. sizes will always be about 9K larger than the largest program you can run.
  1910.  
  1911.  When you use the Change a Program menu (see Chapter 7) to change a program's
  1912. size, the number you enter for Memory Size (in K) should not include
  1913. DESQview's overhead. So, when specifying a minimum memory size, always
  1914. subtract 9K from numbers given by the Memory Status program before you enter
  1915. that number in the Memory Size (in K) field. (To run very large programs you
  1916. should enter a maximum program memory size, see page 121.)
  1917.  
  1918.  The overhead per program isn't always exactly 9K. For program script buffers
  1919. above 1K, add the size over 1K. If your program uses EGA or VGA text modes
  1920. that display more than 25 lines, add in the numbers in the table on page 123,
  1921. less 4K (which is already included in the standard 9K value). For programs
  1922. that have the Displays graphics information option set to ON, add 12K (for a
  1923. total of 21K) if you have a CGA and you don't have any exPANDed memory. Also,
  1924. most programs that come with DESQview ~dash~ DOS Services, Add a Program,
  1925. Change a Program, and DESQview Companions ~dash~ require additional overhead
  1926. varying from 1K-10K.
  1927.  
  1928.  8     If you have a Hercules, enhanced graphics (EGA) or Video Graphics
  1929. Array (VGA) display adapter, and run graphics programs that use EGA modes,
  1930. DESQview tries to use exPANDed memory to retain the contents of the screen
  1931. when you switch away to another program. It uses exPANDed memory because an
  1932. EGA or VGA can have 64K, 128K, or 256K or more of data displayed on the
  1933. screen ~dash~ an amount of information that can be saved quickly only by
  1934. being moved to exPANDed memory. (If you don't have exPANDed memory, or not
  1935. enough is available, "graphics screens" are saved on disk.)
  1936.  
  1937.  9     When you run a communications program that you want to work in
  1938. background, turn OFF its Can be swapped out of memory option (see page 120)
  1939. and  load it first if you want it to do high-speed communications  ~dash~
  1940. except on a 386 PC.If you have any other nonswappable programs, load them
  1941. immediately after your communications program so as not to fragment memory.
  1942.  
  1943.  10      Expanded memory is allocated on a request basis. When a program that
  1944. supports exPANDed memory requests exPANDed memory, that memory is removed
  1945. from the total pool of available exPANDed memory and is thus not available to
  1946. run programs ~dash~ until the program releases it back to the pool or the
  1947. window is closed.
  1948.  
  1949.  11      Alternate Maps is a feature of EMS4 which DESQview will use if they
  1950. are available. An "alternate map" is a method of remembering the way exPANDed
  1951. memory is configured for a particular program. When "remembered" in an
  1952. alternate map, a particular memory configuration can be reset very quickly;
  1953. much faster than re-mapping many individual pages. If there is only one
  1954. alternate map (in addition to the mapping hardware required for normal EMS
  1955. operations, DESQview sets the alternate map to remember the original memory
  1956. set-up when DESQview was started.  If there is more than one alternate map,
  1957. then DESQview uses one for itself and then allocates one alternate map per
  1958. program. Thus the first windows opened will each be able to be brought back
  1959. into memory as quickly as possible. When the alternate maps are exhausted,
  1960. DESQview must resort to mapping individual pages for those programs.
  1961.  
  1962.  Alternate maps are an optimal feature of EMS4. DESQview will use them
  1963. automatically if they are present. To find out if your exPANDed memory
  1964. manager supports this feature you can use Quarterdeck's Manifest.  Manifest
  1965. lists Alternate Maps under "Expanded" ~dash~ and you must run manifest
  1966. outside DESQview to determine whether or not your memory board supports this
  1967. feature.
  1968.